用rsync命令免密备份A服务器的/srun3/db_backup/和/srun3/redis_backup/目录下的所有目及文件到B服务器的remote_back目录下,写出详细脚本
时间: 2023-09-23 16:09:02 浏览: 73
好的,为您提供如下脚本:
```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服务器用户名,修改为实际的值即可。此脚本实现了免密备份,且备份过程中会删除目标目录中不存在的源文件。
相关问题
定时用rsync命令免密备份A服务器的/srun3/db_backup/和/srun3/redis_backup/目录下的所有文件到B服务器的remote_back目录下,写出详细脚本和计划任务
好的,请您按照以下步骤操作:
1. 在A服务器上创建一个备份脚本,脚本内容如下:
```
#!/bin/bash
rsync -avz --delete /srun3/db_backup/ user@B_server:/remote_back/
rsync -avz --delete /srun3/redis_backup/ user@B_server:/remote_back/
```
其中,user是B服务器的用户名,B_server是B服务器的IP地址或域名,/remote_back/是B服务器上用于存放备份文件的目录。--delete选项表示删除B服务器上已经不存在的文件。
2. 在A服务器上将该脚本保存为backup.sh,并添加执行权限:
```
chmod +x backup.sh
```
3. 在A服务器上设置SSH免密登录B服务器,以便在脚本中使用rsync命令进行备份。具体步骤如下:
3.1 在A服务器上执行以下命令生成公钥和私钥:
```
ssh-keygen -t rsa
```
3.2 将公钥复制到B服务器上:
```
ssh-copy-id user@B_server
```
其中,user是B服务器的用户名,B_server是B服务器的IP地址或域名。
3.3 在B服务器上检查是否已经成功添加了A服务器的公钥:
```
cat ~/.ssh/authorized_keys
```
如果已经添加,应该可以看到A服务器的公钥。
4. 在A服务器上设置计划任务,定期执行备份脚本。假设您希望每天凌晨1点执行备份任务,可以执行以下命令:
```
crontab -e
```
然后在文件末尾添加以下内容:
```
0 1 * * * /root/backup.sh >> /var/log/backup.log 2>&1
```
其中,/root/backup.sh是备份脚本的路径,/var/log/backup.log是备份日志的文件路径。
保存退出后,计划任务就设置完成了。每天凌晨1点,系统会自动执行备份脚本,并将执行结果写入备份日志中。
写一个用rsync免密传送/srun3/db_backup和/srun3/redis_backup目录下所有文件及子目录到192.168.20.239服务器/remote_back的脚本
好的,以下是一个用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免密登录,否则需要手动输入密码才能进行传输。
阅读全文