定时增量备份/srun3/db_backup/和/srun3/redis_backup/目录下所有的子目录及文件到另一个服务器的remote_back目录下
时间: 2023-09-11 07:07:00 浏览: 127
好的,为您提供如下脚本,实现定时增量备份:
```bash
#!/bin/bash
# A服务器的IP地址和用户名
A_IP="A服务器IP地址"
A_USER="A服务器用户名"
# B服务器的IP地址和用户名
B_IP="B服务器IP地址"
B_USER="B服务器用户名"
# 备份源目录
SRC_DIR="/srun3/db_backup/ /srun3/redis_backup/"
# 备份目标目录
DEST_DIR="/remote_back"
# 备份文件的前缀
BACKUP_PREFIX="backup_"
# 获取当前日期时间
DATE_TIME=$(date "+%Y%m%d_%H%M%S")
# 备份文件的完整路径
BACKUP_FILE="${BACKUP_PREFIX}${DATE_TIME}.tar.gz"
# rsync命令备份
rsync -az --delete -e "ssh ${B_USER}@${B_IP}" ${SRC_DIR} ${B_USER}@${B_IP}:${DEST_DIR}
# 增量备份
ssh ${A_USER}@${A_IP} << EOF
cd /srun3
tar -zcvf ${BACKUP_FILE} --directory=/srun3 ${SRC_DIR}
scp ${BACKUP_FILE} ${B_USER}@${B_IP}:${DEST_DIR}
rm -f ${BACKUP_FILE}
exit
EOF
```
在上述脚本中,首先使用 rsync 命令将 A 服务器的备份目录同步到 B 服务器的备份目录,确保在执行增量备份时,B 服务器上的备份文件是最新的。然后,通过 SSH 连接到 A 服务器,在 A 服务器上使用 tar 命令将备份目录打包成一个 tar 压缩包,并将其传输到 B 服务器上。最后,删除 A 服务器上的备份文件。
您可以使用 cron 工具来定时执行该脚本。例如,将以下内容添加到 `/etc/crontab` 文件中,可以每天的凌晨 3 点执行该脚本:
```
0 3 * * * root /path/to/backup_script.sh
```
其中,`/path/to/backup_script.sh` 是您保存该脚本的路径。
阅读全文