O2OA如何实现文件跨服务器的备份

O2OA可以外接存储服务器,但是一个存储服务器上怕磁盘损坏等问题导致文件丢失,所以需要实现文件跨服务器备份。

整体过程:

1、SSH免密登录配置

2、增加一个同步推送文件的.sh文件

3、编辑crontab 增加定时任务执行上一步的.sh文件

一、配置SSH免密登录

两台存储服务器之间需要先配置好ssh免密登录。 免密登录通常是通过公钥认证(SSH Key Pair)实现的 , 具体步骤如下:

1.生成SSH密钥对

如果还没有SSH密钥对,可以通过以下命令生成一个新的密钥对:

复制代码
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • -t rsa: 生成RSA类型的密钥

  • -b 4096: 设置密钥长度为4096位

  • -C "your_email@example.com": 注释,通常用邮箱作为标识

生成过程会提示存储位置(默认是~/.ssh/id_rsa),并可选择是否设置密码(免密登录通常选择不设置密码)。

2. 将公钥复制到SFTP服务器

使用 ssh-copy-id 命令将公钥复制到目标SFTP服务器:

复制代码
ssh-copy-id username@remote_host

这会将公钥追加到远程服务器的 ~/.ssh/authorized_keys 文件中。确保远程服务器的authorized_keys文件权限是 600,并且.ssh目录的权限是 700,否则免密登录可能无效。

3. 验证免密登录

确保你可以通过SSH免密登录到SFTP服务器:

复制代码
ssh username@remote_host

4. 免密连接的注意事项

服务器设置 :确保SFTP服务器允许公钥认证(在/etc/ssh/sshd_config文件中,确保 PubkeyAuthentication yes)。

二、增加同步文件的.SH文件

1.通过命令新增一个.sh文件

复制代码
vim sync_to_93.100.sh

在.sh文件中写入同步文件的命令,将本地目录中的文件同步到远程服务器的目录上:

复制代码
rsync -av --delete /data/o2serverStorage root@172.16.93.100:/data
  • rsync: 这是命令本身,表示使用 rsync 工具进行文件同步。

  • -a: 表示归档模式,等同于 -rlptgoD,这意味着:

    • -r: 递归处理子目录及其文件。

    • -l: 保留符号链接。

    • -p: 保留文件权限。

    • -t: 保留修改时间。

    • -g: 保留文件的组信息。

    • -o: 保留文件的所有者信息。

    • -D: 保留设备文件和其他特殊文件。

  • -v: 表示详细模式,显示同步过程中的详细信息。

  • --delete: 在目标目录中删除那些源目录中不存在的文件。这确保了目标目录与源目录保持一致。

  • /data/o2serverStorage: 这是源目录,即你要从哪个目录同步文件。

  • root@172.16.93.100:/data: 这是目标目录,表示将文件同步到远程服务器 172.16.93.100 上的 /data 目录。root 是远程服务器上的用户名。

2.增加执行权限

使用 chmod 命令添加执行权限。

复制代码
chmod +x /data/sync_to_93.100.sh

三、增加定时任务

1.执行crontab -e命令

复制代码
crontab -e

如果你是第一次使用 crontab -e,系统会提示你选择一个编辑器。常见的编辑器有 nanovivim。选择一个你熟悉的编辑器。例如,选择 nano 可以输入数字对应的选择编号,通常是 1

2.编辑 crontab 文件

可以在这个文件中添加定时任务,每一行代表一个定时任务。

复制代码
10 23 * * * /data/sync_to_93.100.sh >> /var/log/mycron.log 2>&1
  • 10:表示分钟,这里是10分。

  • 23:表示小时,这里是23点。

  • *:表示日期(1-31),这里的 * 表示每天。

  • *:表示月份(1-12),这里的 * 表示每个月。

  • *:表示星期几(0-7,其中0和7都表示周日),这里的 * 表示每一天。

  • /data/sync_to_93.100.sh:表示要执行的文件。

  • >> /var/log/mycron.log:将标准输出追加到日志文件中。

  • 2>&1:将标准错误输出重定向到标准输出,从而一起追加到日志文件中。

这样配置都完成了,可以进行同步测试。