上次做了MySQL的远程备份,现在做一下文件夹的远程备份,这次主要使用的rsync这个工具。
假设需要备份的文件在服务器B上,要把文件备份到A上
1.配置服务器的免密登录
配置免密登录比较简单,这里注意,需要登录到B服务器上,对要备份的目录具有操作权限的用户。比如普通用户abc有权限操作就用abc的身份登录即可,尽量避免使用root。
- 生成A服务器的id_rsa.pub公钥
ssh-keygen -t rsa -C "root@10.1.21.38"
- 复制公钥内容
cat ~/.ssh/id_rsa.pub #复制打印出来的内容
- 将公钥加入B主机的authorized_keys
vim ~/.ssh/authorized_keys
2.配置测试rsync
#!/bin/bash
rsync -vzrtopg --progress --delete -e 'ssh -p 22' root@47.56.34.2:/root/fileUpload /home/backup/fileUpload/
将47.56.34.2主机上的文件夹,远程备份到本地文件夹,测试没有问题后,使用脚本和自动定时任务备份。
3.使用脚本自动备份
#!/bin/bash
DATE="$(date +%F)"
backup_dir=/data/shenben/backforder/40/image
#rsync -vzrtopg --progress --delete -e 'ssh -p 22' hdu@10.1.21.40:/data/shenben/backforder/ ${backup_dir}/${DATE} 1> ${backup_dir}/rsync.log 2>&1
lPkgList=($(ls "${backup_dir}" | sort -nr))
for ((j=3; j<${#lPkgList[@]}; ++j)); do
rm -rf "${backup_dir}/${lPkgList[$j]}"
done