最近一个朋友让我帮忙搭建匿名的rsync服务器。
1.开启rsync服务
- service rsync
- {
- disable = no
- socket_type = stream
- wait = no
- user = root
- server = /usr/bin/rsync
- server_args = --daemon
- log_on_failure += USERID
- }
2.编写配置--rsyncd.conf
- # rpm -ql rsync
- /etc/xinetd.d/rsync
- /usr/bin/rsync
- /usr/share/doc/rsync-2.6.8
- /usr/share/doc/rsync-2.6.8/COPYING
- /usr/share/doc/rsync-2.6.8/README
- /usr/share/doc/rsync-2.6.8/tech_report.tex
- /usr/share/man/man1/rsync.1.gz
- /usr/share/man/man5/rsyncd.conf.5.gz
- # man /usr/share/man/man5/rsyncd.conf.5.gz
- EXAMPLES
- A simple rsyncd.conf file that allow anonymous rsync to a ftp area at /home/ftp would be:
- [ftp] #这个同步的时候用到的模块
- path = /home/ftp # 同步时放入的位置
- comment = ftp export area #提示,这个好像作用不到吧
- A more sophisticated example would be:
- uid = nobody #这个很重要!之前没弄出啦就是卡在这个地方了。系统如果没有这个用户
- gid = nobody #就可能不允许匿名登录。使用useradd -r nobody 进行增加(系统用户)
- use chroot = no #使用chroot,建议2.6.9以下版本都要打开。这是一个安全漏洞
- max connections = 4 #连接数量
- syslog facility = local5 #生成日志
- pid file = /var/run/rsyncd.pid #rsync运行时的PID
- [ftp]
- path = /var/ftp/pub
- comment = whole ftp area (approx 6.1 GB)
- [sambaftp]
- path = /var/ftp/pub/samba
- comment = Samba ftp area (approx 300 MB)
- [rsyncftp]
- path = /var/ftp/pub/rsync
- comment = rsync ftp area (approx 6 MB)
- [sambawww]
- path = /public_html/samba
- comment = Samba WWW pages (approx 240 MB)
- [cvs]
- path = /data/cvs
- comment = CVS repository (requires authentication)
- auth users = tridge, susan
- secrets file = /etc/rsyncd.secrets #如果使用密码文件时。
- The /etc/rsyncd.secrets file would look something like this:
- tridge:mypass #那个密码文件的格式
- susan:herpass
格外还要加上几个参数:
timeout = 600 #客户端要及时的断开,不然其他客户端无法连接上来。
refuse options = c delete #不允许客户端进行任何删除或者删除目录更新文件(这个有时很有用!)
3.同步过程。很多时候,我就盲从网上给的方法。我不能说不对,但是我根据网上的说明都没弄出来!
客户端几乎不用配置。一个命令搞定:rsync -Pav <要同步的文件> <rsync服务器IP>::<模块名称,按上面来就是FTP>
这样就OK了。
问题:1.不能传输。请看客户端的报错信息。
1.大部分这样的信息都是集中与权限的问题。我们要把服务器端的ftp指定的/home/ftp/这个文件夹设置为777,这样很危险,因此我们一定要设置use chroot选项。
2.可能服务器上就没有nobody这个用户,不能匿名传输。
2.还是需要密码。1.检查一下命令是否正确?主要看后面的 不要指定用户名可能也会出现错误。
2.是不是ssh进行传输了?
3.传输过来的文件属性问题。1.匿名上传的文件属主和属主都是nobody。
2.尽量不要人工干预备份,如果要手动建立文件夹的话 必须修改属主属组都为nobod
4.生成日志格式。
1.默认格式 "%o %h [%a] %m (%u) %f %l", and a "%t [%p] "
2.不生成日志? rsync服务如果已经启动,重启xinetd服务并不能生成日志。需要你重启rsync进程。
- o %a the remote IP address
- o %b the number of bytes actually transferred
- o %B the permission bits of the file (e.g. rwxrwxrwt)
- o %c the checksum bytes received for this file (only when sending)
- o %f the filename (long form on sender; no trailing "/")
- o %G the gid of the file (decimal) or "DEFAULT"
- o %h the remote host name
- o %i an itemized list of what is being updated
- o %l the length of the file in bytes
- o %L the string " -> SYMLINK", " => HARDLINK", or "" (where SYMLINK or HARDLINK is a filename)
- o %m the module name
- o %M the last-modified time of the file
- o %n the filename (short form; trailing "/" on dir)
- o %o the operation, which is "send", "recv", or "del." (the latter includes the trailing period)
- o %p the process ID of this rsync session
- o %P the module path
- o %t the current date time
- o %u the authenticated username or an empty string
- o %U the uid of the file (decimal)