我使用 .Net Core 创建了一个与服务器通信的应用程序。我为 CentOS x64 发布了该应用程序,但目前无法将其作为 crontab 中的任务执行。
这就是我所做的:
1)我使用以下命令授予了它完全权限:
chmod 777 ApplicationName
注意:在此步骤之后,如果我转到其文件夹并运行./ApplicationName
正常,并将数据记录到客户端中的文件中,并将信息发送到服务器。
2)我使用以下命令创建了一个任务:
crontab -e
用行:
* * * * * root cd "/ApplicationPath" && ./ApplicationName
注意:如果我运行cd "/ApplicationPath" && ./ApplicationName
它,它可以正常工作并将数据记录在客户端的文件中并将信息发送到我的服务器。
3)然后,我通过执行以下操作重新启动了cron:
service crond stop
service crond start
4)等了几分钟,什么也没做。客户端上没有日志文件或发送到服务器的数据...
我检查了 cron 日志/var/log/cron
,发现每分钟都会重复以下行:
[date] [hostname] CROND[28554]: (root) CMD (root cd "/ApplicationPath" && ./ApplicationName)
谁能告诉我我做错了什么?
答案1
正如 @steeldriver 所说,格式不正确...我删除了用户,一切正常。感谢您的帮助。
对于任何有类似问题的人来说,这是正确的语法:
* * * * * cd "/ApplicationPath" && ./ApplicationName
没有用户。
答案2
我建议同时使用应用程序的完整路径和名称。像这样:
* * * * * /ApplicationPath/ApplicationName