首页 > 代码库 > rsync配置与自动化执行

rsync配置与自动化执行

rsync是类unix系统下的数据镜像备份工具——remote sync。一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH、rsync主机同步。我们先来了解下rsync的语法吧,然后在配置rsync+ssh+crontab,实现自动化备份。

yum install rsync -y                     #安装服务

本地目录同步(个人认为本地同步还是cp实用)

rsync -avz /tang /home            #将/tang目录下的文件复制到/home中,参数说明看下面。

技术分享


实验环境:

由于我想把实验录成gif效果,所以装了个图像界面,左边是主服务器,右边是ssh远程备份服务器。

把主服务器的  /tang/  目录 备份到备份服务器的 /home中,备份服务器的IP为:192.168.23.35

rsync -avz /tang/ root@192.168.23.35:/home/        #把本地/tang/目录备份到远程备份服务器的/home目录下

技术分享



假如主服务器和备份服务器都想保持一致,可以加上 --delete,让备份服务器同步主服务器,有多余的就删除。  左边是主服务器,右边是ssh远程备份服务器。

rsync --delete -avz /tang/ root@192.168.23.35:/home/

技术分享


同步指定的文件夹名。这里是以b开头的文件夹都匹配

rsync -avz --include ‘b*‘ --exclude ‘*‘ /tang root@192.168.23.35:/home   

解释:--include是包括的意思。 --exclude是排除的意思,*代表前面的(左邻)字符有0个或0个以上。

如果想要准确的同步一个文件夹,--include这里是文件夹的名字,后面不加*号键。 

左边是主服务器,右边是ssh远程备份服务器。

技术分享



-a, -权限的属性不变

-v, -详细模式输出

-z, -传输时进行压缩处理

-e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步


基本的操作上面应该都演示了,相信你应该知道每次同步都要输入备份服务器的密码,现在来配置ssh免密码登录,然后在 crontab -e 中 写个脚本就可以自动化执行了。实验如下:


在主服务器上生成密钥

ssh-keygen            #(直接选择回车,都选择默认就行)


使用ssh-copy-id将公匙发送到备份服务器

ssh-copy-id 192.168.23.35


然后再测试下,远程登录是否要密码,不用就OK!

技术分享


手动测试同步是否需要输入密码

rsync -avz -e ssh /tang root@192.168.23.35:/home

技术分享


ssh 免密码登录OK,现在我们把这句写入一个脚本里面

echo "rsync -avz -e ssh /tang root@192.168.23.35:/home " > /etc/tang.sh


crontab -e            #编写定时执行任务,每个小时的第五分钟执行一次。

5 * * * * sh /etc/tang.sh

技术分享


*  *  *  *  *    sh /etc/tang.sh


解释:

第1列表示分钟1~59 每分钟用*或者 */1表示 

第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天) 






以上实验配置完毕,

本文出自 “老唐” 博客,请务必保留此出处http://laotang6.blog.51cto.com/12692658/1942507

rsync配置与自动化执行