rsync是类unix系统下的数据镜像备份工具——remote sync。一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH、rsync主机同步。我们先来了解下rsync的语法吧,然后在配置rsync+ssh+crontab,实现自动化备份。
创新互联公司是专业的西湖网站建设公司,西湖接单;提供做网站、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行西湖网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
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表示星期天)
以上实验配置完毕,
新闻名称:rsync配置与自动化执行
网页网址:http://scyingshan.cn/article/gseoje.html