예, 수많은 문서를 읽었지만 제대로 작동할 수 없습니다. 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초마다 스크립트를 실행해야 한다면 아마도 뭔가 잘못하고 있는 것일 수 있습니다.