在linux下使用rsync将文件定时同步到另外一台机器

作者:  最后修改:2014年01月27日  浏览数:246

  在部署的时候,我们都会遇到前后台分离的场景。编辑在后台进行编辑工作,前台的访问由另外一台独立的服务器提供访问,这个时候就存在编辑上传的资源如何自动的同步到前台显示机器的问题。在linux下通过简单的配置和简单的脚本命令就能实现。配置和脚本命令如下:

  1)增加在两台服务器的ssh信任(如:需要从A机器同步文件夹到B机器,则需要在B机器配置A机器的信任)

  在A机器执行:ssh-keygen -t dsa -b 1024  得到id_dsa.pub文件,最好不要指定目录,生成在默认目录下(一般在/etc/ssh、ssh安装目录下)

  将id_dsa.pub里面的内容增加到B机的authorized_keys文件(一般在/etc/ssh、ssh安装目录下)

  cat  id_dsa.pub >> authorized_keys

  2)创建一个需要定时执行的脚本文件,如:rsyncd.sh脚本实现将/web/exam_admin/Upload/image/这个目录同步到192.168.1.236:/web/exam/Upload/image/(脚本为实现增量同步)

  Vi  /web/sh/ rsyncd.sh

  添加如下内容

  rsync -auqz  /web/exam_admin/Upload/image/ 192.168.1.236:/web/exam/Upload/image/

  rsync -auqz  /web/exam_admin/Upload/image/ 192.168.1.236:/web/exam7080/Upload/image/

  rsync -auqz  /web/exam_admin/Upload/image/ 192.168.1.237:/web/exam/Upload/image/

  rsync -auqz  /web/exam_admin/Upload/image/ 192.168.1.237:/web/exam7080/Upload/image/

  3)配置定时任务 crontab –e (半个小时执行一次)30 * * * * /web/sh/rsyncd.sh(脚本文件所在目录)