rsync服务端启动报错rsync: link_stat "/etc/rc.d/init.d/–daemon" failed: No such file or directory (2)
问题描述
rsync服务端配置文件修改完成后。启动服务返回报错如下
[root@localhost init.d]# /usr/bin/rsync –daemon rsync: link_stat "/etc/rc.d/init.d/–daemon" failed: No such file or directory (2) rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1178) [sender=3.1.2]
解决方案
先抛出解决方案,只要把命令中daemon前面的“-”换成“--”,启动成功了。((┬_┬),加班加点排查了4个小时才解决)
[root@localhost etc]# /usr/bin/rsync --daemon [root@localhost etc]# ps -ef|grep rsync root 13470 1 0 10:51 ? 00:00:00 /usr/bin/rsync --daemon root 13545 7777 0 10:51 pts/0 00:00:00 grep --color=auto rsync
注意:如果手动输入“--”不生效,可考虑 执行命令 /usr/bin/rsync ,从返回的帮助信息中copy一个“--”出来用,就成功了。至于为什么暂时不知道原因,欢迎找到原因的朋友留言。(明明一样的嘛,太任性了)
[root@localhost etc]# /usr/bin/rsync –-daemon rsync: link_stat "/etc/–-daemon" failed: No such file or directory (2) rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1178) [sender=3.1.2] [root@localhost etc]# /usr/bin/rsync --daemon [root@localhost etc]# ps -ef|grep rsync root 13470 1 0 10:51 ? 00:00:00 /usr/bin/rsync --daemon root 13545 7777 0 10:51 pts/0 00:00:00 grep --color=auto rsync
排查思路
1.首先,各种网搜,搜索关键词:rsync: link_stat "/etc/rc.d/init.d/–daemon" failed: No such file or directory (2)
但网上的资料各种互相copy,且都是针对同步过程出的错。不符合当前情况。不得已自己根据报错信息一步步排查。
2.自己分析报错日志,提示很明确:/etc/rc.d/init.d/–daemon 文件或者目录不存在。
1)ll查看 /etc/rc.d/init.d/–daemon,此文件确实不存在。(还专门去研究了下/etc/rc.d/init.d/目录是干嘛的,貌似没啥关系)
2)那为什么要执行这个文件呐,难道是rsync 命令调用执行的?但是rsync是无法打开查看内部执行逻辑的,网上搜无解。
3)最后求助同事,同事解释说可能是系统不认识“/usr/bin/rsync –daemon”。误解是一个文件“/etc/rc.d/init.d/–daemon”。(系统为啥这样处理太深入了暂不研究)
4)到此,基本定位到是我输入的命令错误,/usr/bin/rsync 这是rsync的执行命令,确保是没问题的。那问题就出在参入部分“ –daemon”
5)参数问题可求助命令自身帮助。执行 /usr/bin/rsync 直接返回相关说明信息。说明信息的最后,明确提示daemon的使用格式是“ -- ”
Use "rsync --daemon --help" to see the daemon-mode command-line options.
6)重新输入执行命令 ,daemon前输入两个中划线,还是报错 。😭
/usr/bin/rsync –-daemon #手动输入的
7)为避免输入问题,从说明信息中直接复制粘贴“--daemon”,执行成功了。原因未知。。。。。。等我发现了再补充上