定时用rsync命令免密备份A服务器的/srun3/db_backup/和/srun3/redis_backup/目录下的所有文件到B服务器的remote_back目录下,写出详细脚本和计划任务
时间: 2023-11-27 11:06:02 浏览: 27
好的,请您按照以下步骤操作:
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点,系统会自动执行备份脚本,并将执行结果写入备份日志中。