我已经使用 openssh、rysnc 和 cron 运行了已安装的 cygwin。我已经运行了 cygserver-config 和 cron-config
cygcheck -c | grep cron
cron 4.1-65 OK
cygrunsrv -Q cron
Service : cron
Current State : Running
Controls Accepted : Stop
Command : /usr/sbin/cron -n
Windows 在正确的用户环境中识别了该服务。
Windows 事件、cron 或 cygserver 日志中没有错误。互联网上的许多资源都坚持使用 cron-config 而不是cygrunsrv -I cron -p /usr/sbin/cron -a -D
或cygrunsrv -I cron -p /usr/sbin/cron --args -n
。我尝试了所有这三种方法。似乎所有东西都已使用 cron-config 正确安装,但 cron 作业未运行。这是我的 crontab 的一个示例(是的,出于调试目的,它被设置为每分钟运行一次!)
crontab -l
* * * * * rsync -avz -e "ssh -i /cygdrive/c/users/path/.ssh/id_rsa" [email protected]:/var/log/path/ /cygdrive/c/destination/path/ --progress
答案1
在 crontab 中,你应该始终以完整路径运行命令;对于 rsync 来说,它应该是
/usr/bin/rsync
答案2
进一步分析问题。打开 cygwin shell 并输入
cronevents
答案3
这并未设置为每分钟运行一次
* * * * * rsync -avz -e "ssh -i /cygdrive/c/users/path/.ssh/id_rsa" [email protected]:/var/log/path/ /cygdrive/c/destination/path/ --progress
这确实设置为每分钟运行一次
*/1 * * * * rsync -avz -e "ssh -i /cygdrive/c/users/path/.ssh/id_rsa" [email protected]:/var/log/path/ /cygdrive/c/destination/path/ --progress