OCC服务器到BCC服务器文件正向同步
需求:编写shell脚本,使用rsync
命令来同步目录,把全部需要同步的目录放在配置文件中,设置定时任务自动同步,5分钟同步一次,并将日志文件限制在100M以内
服务器IP:
服务器类型 | IP地址 |
---|---|
OCC服务器 | 192.168.1.188 |
BCC服务器 | 192.168.1.88 |
第一步:配置SSH免密登录
-
生成SSH密钥(如果尚未生成):
在192.168.1.88上执行:ssh-keygen -t rsa
按提示操作,不要输入密码,这样就会在
~/.ssh/id_rsa.pub
生成公钥。 -
复制公钥到192.168.1.188:
在192.168.1.88上执行:ssh-copy-id -i ~/.ssh/id_rsa.pub mml3@192.168.1.188
输入密码
XXXXXX
,完成后应能免密码登录到192.168.1.188 -
反向操作:
同样的步骤也需要在192.168.1.188上执行,复制其公钥到192.168.1.88上。ssh-copy-id -i ~/.ssh/id_rsa.pub mml3@192.168.1.88
第二步:编写Shell脚本
在BCC服务器1.88上新建一个脚本sync_dirs.sh,将使用rsync
命令从1.188上同步指定的目录到1.88的本地目录。请确保两台服务器上都安装了rsync
。将需要同步的文件夹全部填写到配置文件/home/mml3/sync_dirs.conf
中。
#!/bin/bash
# 定义源服务器的地址
SOURCE_SERVER="mml3@192.168.1.188"
# 配置文件路径
CONF_FILE="/home/mml3/sync_dirs.conf"
# 日志文件路径
LOG_FILE="/home/mml3/app/sync_dirs.log"
MAX_LOG_SIZE=104857600 # 100MB in bytes
# 检查日志文件大小并在必要时截断
function check_log_size() {
if [ -f "$LOG_FILE" ]; then
current_size=$(stat -c%s "$LOG_FILE")
if [ $current_size -ge $MAX_LOG_SIZE ]; then
# 将日志文件减少到 50