Ubuntu使用rsync

Posted by Elton's Blog on March 3, 2013
  1. ubuntu默认没有启动rsync
sudo vim /etc/default/rsync
修改下面,使rsync可用
RSYNC_ENABLE=true
  1. 修改rsync.conf配置
$sudo cp /usr/share/doc/rsync/examples/rsyncd.conf /etc
参考配置文件修改如下:
motd file=/etc/motd
log file=/var/log/rsyncd
pid file=/var/run/rsyncd.pid
syslog facility=daemon
[rsync] //模块名称
comment = public archive
path = /path/to/rsync
use chroot = yes
lock file = /var/lock/rsyncd
read only = yes
list = yes
uid = nobody
gid = nogroup
auth users = backup
secrets file = /etc/rsyncd.pass
strict modes = yes
ignore errors = no
ignore nonreadable = yes
transfer logging = no
timeout = 600
refuse options = checksum dry-run
dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz

auth users选项指定由空格或逗号分隔的用户名列表,只有这些用户才允许连接该模块。这里的用户和系统用户没有任何关系。如果”auth users”被设置,那么客户端发出对该模块的连接请求以后会被rsync请求challenged进行验证身份这里使用的 challenge/response认证协议。用户的名和密码以明文方式存放在”secrets file”选项指定的文件中。默认情况下无需密码就可以连接模块(也就是匿名方式)

  1. 创建一个密码文件
$sudo vi /etc/rsyncd.pass
backup:123456
$sudo chmod 0600 /etc/rsyncd.pass
  1. 启动服务器
sudo /etc/init.d/rsync start
  1. 配置客户端
rsync -vzrtopg --progress --delete [email protected]::rsync /backup/

backup就是/etc/rsyncd.pass设置的用户名,rsync是/etc/rsync.conf中的模块名称 然后输入在syncd.pass中的密码,就完成了一次同步。

  1. 设定定时任务 如果想每隔一段时间自动同步两个目录,那么可以这么做
$sudo vi /etc/rsync.pwd
//输入/etc/rsyncd.pass中设置的密码
$crontab -e
*/5 * * * * rsync --password-file=/etc/rsync.pwd -vzrtopg --progress --delete [email protected]::rsync /backup/

$/etc/init.d/cron restart

这样就每隔5分钟就自动同步文件一次了。