우분투 crontab PHP가 작동하지 않습니다

우분투 crontab PHP가 작동하지 않습니다

예, 수많은 문서를 읽었지만 제대로 작동할 수 없습니다. 1분에 한두 번 실행하고 싶은 간단한 단일 PHP 파일이 있습니다. 내 PHP 파일 이름은 cronjob_refresh.php이며 Ubuntu 12를 사용하고 있습니다.

입력 후

크론탭 -e

터미널에 들어갑니다.

root@cron:~# crontab -e

루트에는 crontab이 없습니다 - 빈 탭을 사용하세요

888화

"888"이 무엇을 의미하는지 모르겠습니다...(888 이후) cronjob 문자열을 작성하고 있습니다.

*/1 * * * * php /var/www/cronjob/cronjob_refresh.php

Enter 키를 누르면 cronjob 문자열을 입력한 후 "?" 기호가 표시됩니다.

root@cron:~# crontab -e

루트에는 crontab이 없습니다 - 빈 탭을 사용하세요

888화

*/1 * * * * php /var/www/cronjob/cronjob_refresh.php

?

그런 다음 CTRL + Z를 눌러 종료합니다. 결국 난 처형을 하고 있어

크론탭 -l

내 cronjob 목록에 cronjob이 추가되었는지 확인했는데 목록이 비어 있다고 표시됩니다.

내가 뭘 잘못했는지 모르겠습니다. 그리고 1분 안에 30~30초 안에 두 번 하고 싶지도 않아요. cronjob을 설정하는 방법은 무엇입니까? 동일한 디렉토리에 있는 log.log라는 파일에 모든 내용을 기록하고 싶은데 가능합니까?

답변1

888은 기본 Ubuntu crontab 파일의 문자 수입니다(22줄의 정보가 모두 주석 처리되어 있습니다).

^Z를 입력하면 아무 것도 저장되지 않고 작업이 백그라운드로 진행됩니다. 작업 제어를 읽어보세요.

888
*/1 * * * * php /var/www/cronjob/cronjob_refresh.php
?
^Z
[1]+  Stopped                 crontab -e

실행하기 전에 편집기 기본 설정을 지정해야 합니다.crontab -e

export EDITOR=vi 또는export EDITOR=nano

Cron은 1분 해상도로만 작동하므로 스크립트가 작업을 완료하는 데 30초가 걸립니다.

PHP가 작동하지 않는 것과 관련된 다른 문제가 있는 경우(crontab 사양의 버그로 인해) 다음을 읽어보세요.표준 Q&A이 주제에 대해.

답변2

첫째, 매초 cronjob을 예약할 수는 없습니다. cron에서 지정할 수 있는 가장 작은 단위는 분이기 때문입니다. 당신이 원하는 것은 아마도 다음과 같은 스크립트를 실행하는 것입니다.

참고: 위치 뒤에 있는 백틱 2개 중 하나를 제거합니다. 편집자가 삭제를 허락하지 않네요...

#!/usr/bin/perl -w

그리고 (1){

`php /path/to/script/cronjjob_refresh.php``;

수면(30);

}

하지만 이를 재고해야 합니다. 시스템에서 30초마다 스크립트를 실행해야 한다면 아마도 뭔가 잘못하고 있는 것일 수 있습니다.

관련 정보