写一个用rsync免密传送/srun3/db_backup和/srun3/redis_backup目录下所有文件及子目录到192.168.20.239服务器/remote_back的脚本
时间: 2023-12-09 10:03:20 浏览: 35
好的,以下是一个用rsync免密传送/srun3/db_backup和/srun3/redis_backup目录下所有文件及子目录到192.168.20.239服务器/remote_back的脚本示例:
```
#!/bin/bash
# 目标服务器IP地址和目录
remote_server="192.168.20.239"
remote_dir="/remote_back"
# 本地要传输的目录列表
local_dirs=("/srun3/db_backup" "/srun3/redis_backup")
# 遍历本地目录列表,使用rsync传输到远程目录
for dir in "${local_dirs[@]}"
do
rsync -avz --delete -e ssh "$dir" "$remote_server":"$remote_dir"
done
```
该脚本会遍历本地的/srun3/db_backup和/srun3/redis_backup两个目录,使用rsync命令将它们传输到目标服务器的/remote_back目录下。其中,`-avz`选项表示传输文件时使用归档模式,保留文件属性和权限;`--delete`选项表示删除目标目录中不存在的源文件;`-e ssh`选项表示使用ssh加密传输数据。
在使用该脚本之前,请确保目标服务器上已经配置了ssh免密登录,否则需要手动输入密码才能进行传输。
相关问题
用rsync命令免密备份A服务器的/srun3/db_backup/和/srun3/redis_backup/目录下的所有目及文件到B服务器的remote_back目录下,写出详细脚本
好的,为您提供如下脚本:
```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"
# rsync命令备份
rsync -az --delete -e "ssh -o StrictHostKeyChecking=no" ${SRC_DIR} ${B_USER}@${B_IP}:${DEST_DIR}
```
其中,将脚本中的A服务器IP地址、A服务器用户名、B服务器IP地址和B服务器用户名,修改为实际的值即可。此脚本实现了免密备份,且备份过程中会删除目标目录中不存在的源文件。
定时增量备份/srun3/db_backup/和/srun3/redis_backup/目录下所有的子目录及文件到另一个服务器的remote_back目录下
好的,为您提供如下脚本,实现定时增量备份:
```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` 是您保存该脚本的路径。