在几次成功尝试后,RSYNC数据的守护进程失败
我有一个用C编写的守护进程,它使用RSYNC将一个文件从本地复制到远程,并每5秒钟更新一次相同的文件。在几次成功尝试后,RSYNC数据的守护进程失败,c,daemon,rsync,C,Daemon,Rsync,我有一个用C编写的守护进程,它使用RSYNC将一个文件从本地复制到远程,并每5秒钟更新一次相同的文件。 一切正常,但当while循环执行10到15次RSYNC失败时 以下是代码段: 日志 Dec 18 00:07:08 localhost./mydaemon[26384]:while循环中的守护进程:10 Dec 18 00:07:09 localhost./mydaemon[26384]:RSYNC执行0 Dec 18 00:07:14 localhost./mydaemon[26384]:w
一切正常,但当while循环执行10到15次RSYNC失败时 以下是代码段: 日志 Dec 18 00:07:08 localhost./mydaemon[26384]:while循环中的守护进程:10
Dec 18 00:07:09 localhost./mydaemon[26384]:RSYNC执行0
Dec 18 00:07:14 localhost./mydaemon[26384]:while循环中的守护进程:11
Dec 18 00:07:15 localhost./mydaemon[26384]:RSYNC执行0失败时RSYNC和ssh说什么?很有可能您在这里遇到了反拒绝服务启发法——每五秒钟建立一次连接相当频繁……因为代码是用于守护程序STDIN、STDOUT、STDERR的,所以我只有日志。我可以试试sleep(10),看看是否有帮助。@DavidGiven:sleep(5)rsync在1分钟15秒后失败,但sleep(10)大约10分钟,rsync还没有失败。我想现在一切都好了。谢谢这听起来像是反拒绝服务。您应该尽量避免如此频繁地轮询服务器——您将在服务器日志中敲响各种各样的警钟。我会对任何比每十分钟一次更频繁的事情犹豫不决。@DavidGiven:谢谢。实际上,我一天吃两次。这只是测试的一部分,看看daemon是否按照我想要的方式工作。
#define SHELLSCRIPT "\
#! /bin/bash \n\
rsync -azh /my_daemon_test -e 'ssh -p 2222' username@domainname.com:~ \n\
"
syslog(LOG_NOTICE, "Successfully started daemon\n");
while(1) {
syslog(LOG_NOTICE, "daemon in while loop : %d\n", flag);
sys_ret = system(SHELLSCRIPT);
syslog(LOG_NOTICE, "RSYNC Executed %d\n", sys_ret);
sleep(5);
flag++;
}