서버와 통신하는 .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
결과 다음 줄이 1분마다 반복되는 것을 발견했습니다.
[date] [hostname] CROND[28554]: (root) CMD (root cd "/ApplicationPath" && ./ApplicationName)
누구든지 내가 뭘 잘못하고 있는지 말해 줄 수 있나요?
답변1
@steeldriver가 말했듯이 형식이 올바르지 않습니다. 사용자를 삭제했는데 모든 것이 잘 작동합니다. 당신의 도움을 주셔서 감사합니다.
비슷한 문제가 있는 사람에게는 다음이 올바른 구문입니다.
* * * * * cd "/ApplicationPath" && ./ApplicationName
사용자가 없습니다.
답변2
애플리케이션의 전체 경로와 이름을 모두 사용하는 것이 좋습니다. 이와 같이:
* * * * * /ApplicationPath/ApplicationName