O2OA可以外接存储服务器,但是一个存储服务器上怕磁盘损坏等问题导致文件丢失,所以需要实现文件跨服务器备份。
整体过程:
1、SSH免密登录配置
2、增加一个同步推送文件的.sh文件
3、编辑crontab 增加定时任务执行上一步的.sh文件
两台存储服务器之间需要先配置好ssh免密登录。 免密登录通常是通过公钥认证(SSH Key Pair)实现的 , 具体步骤如下:
如果还没有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
),并可选择是否设置密码(免密登录通常选择不设置密码)。
使用 ssh-copy-id
命令将公钥复制到目标SFTP服务器:
ssh-copy-id username@remote_host
这会将公钥追加到远程服务器的 ~/.ssh/authorized_keys
文件中。确保远程服务器的authorized_keys
文件权限是 600
,并且.ssh
目录的权限是 700
,否则免密登录可能无效。
确保你可以通过SSH免密登录到SFTP服务器:
ssh username@remote_host
服务器设置:确保SFTP服务器允许公钥认证(在/etc/ssh/sshd_config
文件中,确保 PubkeyAuthentication yes
)。
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
是远程服务器上的用户名。
使用 chmod
命令添加执行权限。
chmod +x /data/sync_to_93.100.sh
crontab -e
命令crontab -e
如果你是第一次使用 crontab -e
,系统会提示你选择一个编辑器。常见的编辑器有 nano
、vi
和 vim
。选择一个你熟悉的编辑器。例如,选择 nano
可以输入数字对应的选择编号,通常是 1
。
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
:将标准错误输出重定向到标准输出,从而一起追加到日志文件中。
这样配置都完成了,可以进行同步测试。
上一篇:O2OA(翱途)服务器故障排查
下一篇:没有了!