一次配置rsync的经历

参考
1, http://www.howtocn.org/rsync
因为用tar打包再scp的方法去备份数据太简单粗暴了,因此想换成rsync
第一次配置rsync,研究了一下上面给的这个博客,开始 ···

先是服务器端:
首先添加文件 /etc/rsyncd.conf
事后才想,为啥在这个路径写配置文件呢,rsync启动的时候为啥会自动加载此文件?(其实不管什么服务启动的时候都可以选择配置文件的吧 这是常识啊!)
不过还是看了一下'man rsyncd.conf ' 这几句信息量足够了。
configuration file for rsync in daemon mode.
The rsync daemon is launched by specifying the --daemon option to rsync.

DESCRIPTION
       The rsyncd.conf file is the runtime configuration file for rsync when run as an rsync daemon. The rsyncd.conf file controls authentication, access, logging and available modules.

FILES
       /etc/rsyncd.conf or rsyncd.conf
 
所以呢这个文件路径如果是/etc/rsyncd.conf ,启动rsync服务的时候,就不用指定--config=FILE这个选项了
 
这是我的配置文件(的一部分)
 
uid = root
gid = root
use chroot = no
max connections = 4
strict modes =yes
port = 873
address = 10.1.2.12
motd file = /etc/rsyncd.motd
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log
lock file = /var/run/rsync.lock

[backuo]
path = /home/tt/www/
comment = This is a test
ignore errors
read only = yes
list = true
auth users = tx
secrets file = /etc/rsync.pas

 

 
 
一开始有一些注释 在每一行的后面,是我复制一个网页上的配置文件模板
后来发现有些博客真是害死人啊,粘贴过来的时候  就预示着一个下午的时间 被 浪 费 了。
 
一直报各种错 然后一个一个的解决 最后是这个错误
@ERROR: auth failed on module backup
 
插一句,网上搜索解决方案的时候,bing的搜索结果一点帮助都没有,而google 第一个帖子有人说“原来多余的空格也不行”一下子让我的窘境出现转机
我就抱着试试看的心态。。用了下sed 's/ *$//' 去掉了行尾的那些空格
果然成功了!

就像刚才所说,我本以为发现了问题的所在,但是试着在某些行后面故意添加很多空格之后,rsync服务一切正常。

现在好了,出了问题连重现都不行,这更不好总结了。

 

 

 

 
继续 man rsyncd.conf

 
Any  line beginning with a hash (#) is ignored, as are lines containing only whitespace.  Note that a hash in the middle of a line is used as-is, hence it is not possible to put a comment at the
       end of a parameter; the hash and following text becomes part of the parameter.

原来如此
行尾不能加注释!
其实在我sed的时候,不知不觉把每一行的配置后面的“空格以后的”内容全部去掉了,这才是解决问题的关键所在!
p.s. 关于shell脚本的注释
bash是可以在行尾加注释的,遇到#号 会被认为从#到行尾都是注释内容。


你可能感兴趣的:(shell,rsync,script)