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,系统会提示你选择一个编辑器。常见的编辑器有 nano、vi 和 vim。选择一个你熟悉的编辑器。例如,选择 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:将标准错误输出重定向到标准输出,从而一起追加到日志文件中。
这样配置都完成了,可以进行同步测试。