EMS的备份
EMS的备份
EMS 备份用于在故障、升级或配置变更后恢复管理数据。数据库备份、虚拟机快照、配置文件导出和客户端配置备份是不同对象,不能互相替代。本章说明本地 EMS 的备份与还原方法,并区分 Windows EMS 7.2 与 Linux EMS 7.4。
备份范围与准备
至少保存数据库备份、EMS 版本及 build、部署架构、恢复所需密码和操作记录。同时单独保存服务器网络、DNS/NAT、证书及私钥的受控副本、安装介质和外部身份源配置。不要假设一个数据库备份文件包含完整操作系统、全部安装包或外部服务。
| 环境 | 推荐操作入口 |
|---|---|
| 通过GUI备份 | Dashboard > Status 的数据库备份/还原入口 |
| 通过 CLI 备份(7.4.4+) | 使用对应版本的 emscli;本节以 7.4.6+ 参数为例 |
| FortiClient Cloud | 不能手动备份,需要故障迁移请提交FortiCare Ticket |
备份前确认磁盘空间、操作权限、数据库状态和文件保存位置。备份密码与文件分开保管;任何人拿到文件都不应同时获得密码。
通过 GUI 备份
- 登录 Dashboard > Status。多租户模式下进入 Global。 单租户:

多租户:

- 在 System Information 的 Database 项旁单击 Backup。

- 设置并确认备份密码,选择保存格式为数据库本身或者压缩包格式,单击 Back up,备份密码满足8-70个字符以及满足其中三项大写字母、小写字母、数字和符号信息。

- 等待备份任务完成。

- 备份成功后单击OK按钮退出备份页面,下载备份文件。

- 保存生成的文件。

- 将备份复制到独立存储,并安排恢复验证。
通过 CLI 备份(以 7.4.6+ 为例)
EMS 可以通过 execute backup 将数据库备份保存到 EMS 本地路径,也可以通过 SCP、SFTP 或 FTP 复制到远端服务器。只有选择远端保存时才需要对应的文件传输服务;本地备份不依赖远端服务。
注
CLI 备份并非从 7.4.6 才开始支持。官方说明中,EMS 7.4.4+ 支持 CLI 备份和还原,7.4.5+ 增加指定租户的备份和还原。本节按 7.4.6 的参数与命名规则说明,其他版本执行前先检查设备上的 execute backup --help。参见 EMS Database Backup and Restore using EMSCLI。
确认执行入口与备份条件
- Linux Shell:使用
sudo emscli execute backup ...;若命令不在 PATH 中,使用sudo /opt/forticlientems/bin/emscli execute backup ...。 - EMS CLI 交互模式或 EMS VM 的 SSH 会话:直接输入
execute backup ...,不重复添加sudo emscli。详细入口见从 CLI 访问 EMS。 - 确认数据库与 EMS 服务正常,备份目录已存在、执行账户可写,且 EMS 和远端均有足够空间。使用唯一文件名,避免覆盖已有可用副本。
- 远端保存时,从 EMS 到文件服务器 放通对应服务端口,并确认账户可登录且能写入目标目录。SCP/SFTP 默认 TCP 22,FTP 默认 TCP 21;自定义端口必须显式指定。FTP 还需要按服务端模式放通数据连接。
- 明确备份整个 EMS 还是指定站点,并准备独立保管的备份加密密码。
查看命令帮助
下面保留完整帮助输出:
fortinet@EMS $> emscli execute backup --help
The 'backup' command creates an EMS database backup and saves it either locally or remotely.
You must specify a destination for the backup file:
• Use '--local.file' to save the backup to a local path (e.g., /opt/ems/backups/emsdb_20251017.backup.enc).
• Or use '--remote.file' along with '--remote.ip', '--remote.port', '--remote.user', and '--remote.password' to save it remotely. If remote.password is not supplied, you will be prompted to enter it securely.
Additionally, you must provide:
• '--compress.type' — either 'zip' or 'database' (defines the compression format)
• '--backup.password' — password to encrypt the database backup file
Backup file name rules:
• For a **full EMS database backup**, do NOT specify '--backup.sitename'.
The backup filename must start with 'emsdb_'.
Example: emsdb_20251017.backup.enc
• For a **site-specific backup**, you MUST specify '--backup.sitename'.
The backup filename must start with 'emssite_' followed by the site name.
Example: emssite_nycdb_20251017.backup.enc
Usage:
emscli execute backup [flags]
Flags:
--backup.password string A password for the database backup file, which must be provided when the database is later restored
--backup.sitename string The specific site name to be backup
--compress.type string The compression type to be used for the backup [database|zip] (default "zip")
--copy.service string The service that will be used to copy to the remote host [scp|ftp|sftp] (default "scp")
-h, --help help for backup
--local.file string The path/file name of the local database backup to be saved (on the local host)
--op_id string The operation ID will be used to track the status of the backup operation
--remote.file string The path/file name on the remote host to where the database backup file will be copied. The remote user must have write access to this location.
(For the FTP service, the file location is relative to the FTP root folder)
--remote.ip string The IP of the remote host where the database backup file will be copied to
--remote.password string The password for the remote user that will be used to connect to the remote host
--remote.port int The port to be used by the remote copy service. [default: 22 for SCP/SFTP, 21 for FTP]
--remote.user string The user that will be used to connect to the remote host
--yes Skip confirmation prompts during backup
fortinet@EMS $>参数与文件命名
| 参数 | 用途与填写要求 |
|---|---|
--local.file | EMS 本地文件的完整路径,不是管理员电脑的下载目录。与远端保存方式二选一 |
--remote.file | 远端目标文件路径,必须包含文件名;FTP 路径相对于 FTP 根目录,SFTP 路径以该账户可见的目录为准 |
--remote.ip / --remote.port / --remote.user | 远端地址、服务端口和登录账户;下面示例显式填写端口 |
--copy.service | scp、sftp 或 ftp,默认 scp;推荐使用 SCP/SFTP |
--remote.password | 远端账户的登录密码;可省略并按提示安全输入,与备份加密密码不同 |
--backup.password | 备份加密密码,创建时必须提供,还原时使用同一密码 |
--compress.type | zip 或 database,默认 zip;示例显式指定,选择格式时应保持与恢复流程一致 |
--backup.sitename | 只在备份指定站点时提供,填写 EMS 中实际的站点名称 |
--op_id | 用于跟踪备份操作的 ID;本节不预设其格式或状态查询命令,应按目标版本帮助使用 |
--yes | 跳过备份确认提示;不代表任务成功,也不替代远端登录密码 |
完整 EMS 数据库备份不指定 --backup.sitename,文件名必须以 emsdb_ 开头,例如 emsdb_20261026_180000.backup.enc。指定站点备份必须带 --backup.sitename,文件名以 emssite_ 加站点名开头,例如站点 nycdb 对应 emssite_nycdb_20261026_180000.backup.enc。单站点备份不能替代完整 EMS 备份。
保存到 EMS 本地
以下多行示例用于 Linux Shell。先将目录、文件名及尖括号中的密码替换为实际值;本地备份目标路径需要提前创建。
sudo emscli execute backup \
--local.file '<本地备份路径>' \
--compress.type zip \
--backup.password '<备份加密密码>'如需使用数据库格式,将 --compress.type zip 改为 --compress.type database。不能修改其他类型。
按提示确认并等待结果。完成后将备份转存到独立存储;仅保留在 EMS 系统盘上的副本无法应对该磁盘损坏。EMS VM 不应照搬 Linux Shell 的目录创建或文件检查命令,应使用该版本允许的本地位置及文件管理方式;无法确认本地保存条件时,可采用下述远端备份。
注意
- EMS VM 本地文件必须保存在/home/ems/exchange目录下,否则不能做取出。
- 虽然提供了备份在EMS本地的选项,但是会占用EMS空间。影响日志和安装包等文件生成,强烈建议远端备份。
保存到远端 SFTP / SCP / FTP 服务器
以下示例使用文件服务器 192.0.2.10、账户 emsbackup 和目录 /backups/ems,均需替换为实际环境值。先在文件服务器创建目录并授予该账户写权限。远端目录由服务器管理员准备,不能假设备份命令会自动创建。
SFTP 备份:
sudo emscli execute backup \
--copy.service sftp \
--remote.ip 192.0.2.10 \
--remote.port 22 \
--remote.user 'emsbackup' \
--remote.file '/backups/ems/emsdb_20261026_180000.backup.enc' \
--compress.type zip \
--backup.password '<备份加密密码>'SCP 备份:将上述 --copy.service sftp 改为 --copy.service scp,并确认服务器支持 SCP,以及该账户在 SCP 下可访问目标路径;端口通常仍为 22。
FTP 备份:
sudo emscli execute backup \
--copy.service ftp \
--remote.ip 192.0.2.10 \
--remote.port 21 \
--remote.user 'emsbackup' \
--remote.file 'backups/ems/emsdb_20261026_180000.backup.enc' \
--compress.type zip \
--backup.password '<备份加密密码>'此处 backups/ems/... 相对于 FTP 根目录。FTP 的账户密码和传输通道不受 SSH 加密保护,即使备份文件本身加密,也应优先使用 SCP/SFTP。
在 EMS CLI 交互模式或 EMS VM 中,可使用下面的单行 SFTP 示例:
execute backup --copy.service sftp --remote.ip 192.0.2.10 --remote.port 22 --remote.user emsbackup --remote.file /backups/ems/emsdb_20261026_180000.backup.enc --compress.type zip --backup.password <备份加密密码>仅备份指定站点
以站点 nycdb 为例,在 Linux Shell 中执行:
sudo emscli execute backup \
--backup.sitename 'nycdb' \
--local.file '/opt/ems/backups/emssite_nycdb_20261026_180000.backup.enc' \
--compress.type zip \
--backup.password '<备份加密密码>'需要保存到远端时,将 --local.file 替换为前述远端参数组,并保持 --backup.sitename 与 emssite_ 后的站点名一致。恢复时也应按对应版本的站点恢复流程操作,不将站点文件作为完整 EMS 数据库导入。
重要
--backup.password 与 --remote.password 是两套不同用途的密码。备份加密密码不能因省略远端密码而省略。实际执行应使用受控运维会话,避免命令历史、录屏及进程参数泄露;不要把真实密码写入手册、共享脚本或任务日志。示例保留确认提示,自动化时才按需要增加 --yes。
确认备份完成
- 查看命令的最终完成或失败结果。仅出现开始执行、操作 ID 或任务已提交,不足以确认备份完成;若返回异步任务信息,按该版本提供的查询方式跟踪至结束。
- 在实际目标目录确认文件存在、大小非零,文件名和修改时间对应本次任务。远端备份需要在文件服务器上检查,不能只确认 EMS 端数据库导出完成。
- 记录 EMS 版本/build、备份时间、完整/站点范围、压缩格式、文件路径和任务结果;密码单独保管。
- 文件完成写入后记录 SHA-256 校验值。转存时比对源文件与副本的校验值;校验一致只证明传输完整,不证明数据库可恢复。
- 在隔离且版本匹配的环境执行恢复演练,并按通过备份还原 EMS检查。不要为了验证备份直接覆盖生产实例。
在有普通 Linux Shell 的文件所在主机上,可执行以下检查:
ls -lh /home/backup/backups/emsdb_20261026_180000.backup.enc
sha256sum /home/backup/backups/emsdb_20261026_180000.backup.enc在EMS VM设备上,可执行以下检查:
ems@fcems-server $> execute ls --show.bytes
/var/lib/redis:
total 8
-rw-rw---- 1 redis redis 7626 Oct 26 11:15 dump.rdb
/exchange:
total 19044
-rw-r--r-- 1 root root 19498340 Oct 26 11:17 emsdb_20261026_180000.backup.enc <--备份文件远端备份时,在文件服务器上使用实际保存路径进行同类检查。
CLI 备份排错
| 现象 | 检查与处理 |
|---|---|
unknown command / unknown flag | 检查 Shell 与 EMS CLI 的命令前缀是否混用,核对 EMS build 和本机帮助,不直接套用其他补丁版本参数 |
| 提示文件名或站点错误 | 完整备份使用 emsdb_ 且不带站点参数;站点备份使用 emssite_站点名,确认站点存在且拼写一致 |
| 本地写入失败 | 检查目录是否存在、执行账户权限、磁盘空间及该部署类型是否允许此本地路径 |
| 远端连接超时或拒绝 | 检查 EMS 到服务器的路由、防火墙、协议、监听端口和服务状态;管理员电脑能连接不代表 EMS 能连接 |
| 远端认证或主机校验失败 | 检查远端账户、密码、登录限制及 SSH 主机指纹;不要通过关闭身份校验绕过问题 |
| 登录成功但文件复制失败 | 检查目标目录、账户写权限、配额和可见根目录;FTP 另查数据连接是否被阻断 |
| 文件存在但任务失败或文件不完整 | 保留错误输出和文件,不把它登记为可用备份;排除原因后用新文件名重试,并重新验证 |
定时备份
通过Cron设定定期备份
Fortinet 提供了通过 cron 自动备份的示例,涉及 PostgreSQL 角色、数据库、扩展和密钥文件。只能用于安装版EMS上,不能在EMS VM中使用该方式。
通过GUI设定定期备份
EMS 7.4.5 起提供 Scheduled Backup(定期备份),可按计划将数据库备份到本地或远端服务器。本节结合下方界面及 EMS 7.4.6 参数说明配置;多租户环境应在 Global(全局) 中设置。该计划由 EMS 执行,保存后不需要管理员保持浏览器登录。
- 登录 EMS,进入 System Settings > EMS Settings。

- 打开 Scheduled Backup 开关,可以显示定期备份配置项。

- 按需配置定期备份的参数。

以下是配置相关参数说明:
| 界面字段 | 用途与配置说明 |
|---|---|
| Schedule Type(计划类型) | 选择 Daily(每天)、Weekly(每周) 或 Monthly(每月) |
| Backup On(执行周期) | Daily 设置间隔天数,例如 Recur every 1 day(s) 表示每天;Weekly 设置间隔周数及执行的星期;Monthly 设置间隔月数,其他日期选项按当前版本实际界面填写 |
| Start At (in UTC)(开始时间) | 按 UTC 填写小时和分钟,不能直接填入北京时间 |
| Backup Server(备份位置) | Local 保存到 EMS 本地;Remote 保存到远端服务器。Local 不是管理员电脑的下载目录 |
| Backup Retention period (in days)(备份保留天数) | Local 模式下设置保留时长,超过保留期的本地备份会自动删除。截图中的 15 表示天数,不是最多保留 15 个文件 |
| Compression Type(压缩类型) | Database 或 Zip。截图选择 Database;根据恢复流程选择并记录格式,不通过改扩展名转换格式 |
| Backup Password(备份密码) | 用于保护备份文件,还原时需要。与远端服务器登录密码分开保管;仅使用可打印 ASCII 字符,长度及复杂度按当前界面校验要求填写 |
重要
UTC 与北京时间相差 8 小时。截图中的 20:00 UTC 对应北京时间次日 04:00。如计划每天北京时间 02:00 执行,应填 18:00 UTC。Weekly 模式还要换算星期,例如北京时间每周一 02:00 对应 UTC 每周日 18:00。配置后用首次实际执行时间验证,避免只换算小时而遗漏日期变化。
- 确认备份位置。 选择 Local 时,设置保留天数,并确认本地空间能够容纳保留周期内的备份和任务临时文件。 选择 Remote 时,根据展开的界面填写以下信息:

| 配置项 | 填写与检查 |
|---|---|
| 传输协议 | 7.4.6 官方 GUI 说明支持 SCP / SFTP,不能因为 CLI 支持 FTP 就认为此界面也支持 FTP |
| 远端服务器 IP | 填写 EMS 可达的文件服务器地址,例如 192.0.2.10;实际使用时替换为环境地址 |
| 用户名和登录密码 | 使用具有目标目录写权限的专用账户;该密码用于远端登录,不是 Backup Password |
| Backup Path(备份路径,如界面提供) | 填写远端账户实际可见的保存目录,例如 /backups/ems,不要照搬 CLI 的完整文件名;受限 SFTP 账户的目录可能不同于服务器系统路径 |
- 配置完成后单击页面底部 Apply以保存,随后检查配置是否正确
常见问题
| 现象 | 检查与处理 |
|---|---|
| 找不到 Scheduled Backup | 核对版本是否支持;多租户环境切换 Global,并检查管理员是否具备修改系统设置的权限 |
| 配置后未按预期时间执行 | 先确认已 Apply,再检查 UTC 换算、Weekly 的星期和循环间隔;核对 EMS 系统时间,并检查对应时段的错误日志 |
| 本地未生成文件 | 核实实际保存位置、空间、目录权限和数据库/备份任务状态;不要只在 CLI 使用过的目录中查找 |
| 远端未收到文件 | 从 EMS 侧检查协议、网络、服务端口、账户密码、主机身份验证和路径权限;管理员电脑能连接不代表 EMS 能连接 |
| 历史文件消失或空间持续增长 | Local 检查保留天数;Remote 检查服务器清理策略、配额及实际副本增长情况 |
| 更改密码后旧备份无法解密 | 旧文件仍需创建时的备份密码;轮换密码时保留各批次文件对应的密码记录 |
需要暂停计划时,关闭 Scheduled Backup 并单击 Apply;不要把此操作当作取消正在执行的任务或删除已有备份。需要回退配置时,恢复原周期、UTC 时间、保存位置和密码后再次 Apply,并验证下一次任务。
更新历史
| Ver | Description | Author | Rev | Date |
|---|---|---|---|---|
| 1.0 | First Complete | - | - | 2026.10.26 |
| 0.1 | Draft Version | - | - | 2026.08.04 |