> 백엔드 개발 > PHP 문제 > 매일 자동으로 PHP를 실행하는 방법

매일 자동으로 PHP를 실행하는 방법

藏色散人
풀어 주다: 2023-03-14 16:38:02
원래의
4078명이 탐색했습니다.

매일 PHP 자동 실행을 구현하는 방법: 1. 서버에 crontab을 설치합니다. 2. crontab 예약 실행 작업 목록을 봅니다. 3. 시간 설정 규칙에 따라 설정합니다.

매일 자동으로 PHP를 실행하는 방법

이 기사의 운영 환경: linux5.9.8 시스템, PHP 버전 7.1, Dell G3 컴퓨터.

php는 매일 정기적으로 실행할 수 없으며 java 또는 c만 실행할 수 있습니다. php는 페이지에 액세스하지 않고 코드를 건드리지 않기 때문입니다. 그러나 국가를 구할 수 있는 방법이 있습니다

매번 정기적으로 실행하고 싶은 페이지를 작성합니다. day , 운영 체제에 따라 예약된 작업을 수행하고 이 페이지를 정기적으로 방문하세요. 이 기사에서는 Linux 시스템을 예로 들어 설명합니다.

PHP는 예약된 작업을 구현합니다

먼저 명령을 사용하여 서비스가 실행 중인지 확인합니다.

systemctl status crond.service
로그인 후 복사

crontab이 서버에 설치되어 있지 않으면

yum install vixie-cron
yum install crontabs
로그인 후 복사

공통 명령

systemctl restart crond.service #启动服务 systemctl reload crond.service #重新载入配置 systemctl status crond.service #查看crontab服务状态 systemctl enable crond.service #开机自启动
로그인 후 복사

을 실행할 수 있습니다. 명령을 입력할 수 있습니다(편집하려면 i를 누르세요)

crontab -u root -e #进入定时任务编辑
로그인 후 복사

crontab 예약 실행 작업 목록 보기

crontab -l
로그인 후 복사

관련 매개변수

基本格式 :  
*    *  *   *   *  command  
分  时  日  月  周   命令  
第1列表示分钟1~59 每分钟用*或者 */1表示 (每分钟用或者 */1表示,/n表示每n分钟,例如*/8就是每8分钟的意思,下面也是类推)
第2列表示小时1~23(0表示0点)  
第3列表示日期1~31  
第4列表示月份1~12  
第5列标识号星期0~6(0表示星期天)  
第6列要运行的命令
로그인 후 복사

동적 로그 보기(메일로 전송된 33바이트 출력이 많은 경우 상태 0x004b#012, https://bbs.aliyun .com/simple/t135851.html):

tail -f /var/log/cron
로그인 후 복사

Example

*/2 * * * * curl -o /home/index.html www.baidu.com #每隔两分钟使用curl 访问www.baidu.com 并将结果写入/home/index.html 文件
로그인 후 복사
00 * * * * lynx -dump https://www.yourdomain.com/script.php   #当前时间的分钟数为00时,执行该定时任务
로그인 후 복사
lynx -dump https://www.yourdomain.com/script.php  #通过lynx访问这个url。我们在使用中主要用到lynx、curl、wget来实现对url的远程访问,而如果要提高效率,直接用php去执行本地php文件是最佳选择
로그인 후 복사
00 */2 * * * /usr/bin/php /home/www/script.php  #直接用php去执行本地php文件
로그인 후 복사

이 명령문은 2시간마다 0분에 Linux 내부 PHP 환경을 통해 script.php를 실행할 수 있습니다. 이는 url을 통해 접근하는 것이 아니라, 서버 환경에서 실행되는데, 서버 환경을 우회하기 때문에 효율성은 훨씬 높다.

/usr/bin/php를 사용해야 하는 이유는 다음 명령을 사용하면 됩니다. which php 或者 whereis php View

crontab에서 실행 결과를 파일로 출력합니다. 그런 다음 이 파일의 실행 상태를 확인하십시오. 예:

*/1 * * * * /usr/bin/php /data/dou/web/api/cron.php >> /data/dou/web/cron.txt
로그인 후 복사

명령의 연속 실행:
순서대로 실행됨(`;`로 구분)

cmd1;
cmd2;
cmd3;
로그인 후 복사

논리 AND로 실행(&&로 구분)

cmd1&&cmd2&&cmd3;
cmd4;
로그인 후 복사

논리 OR로 실행:(으로 구분) ||)

cmd1||cmd2||cmd3;
cmd4;
로그인 후 복사

즉, 반환 값이 0일 때 논리 AND가 계속 실행됩니다. 반환 값이 0이 아닐 때 논리 OR가 계속 실행됩니다. 논리 AND 및 논리 OR과 동일합니다. 일반적인 프로그램의 단락(`?`는 반환 값, 명령 실행이 정확하면 반환 값은 0입니다. echo $?를 통해 테스트할 수 있습니다. 구체적으로 "return"을 검색하세요)
조합:
cmd1;

cmd2||cmd3&&cmd4;

cmd5;
cmd1을 먼저 실행한 후 cmd2를 실행하고, cmd2가 반환하는 경우 전달된 값이 0이 아니면 cmd3이 실행되고, cmd3에서 반환된 값이 0이면 cmd4가 실행됩니다.

시간 설정 규칙의 예:

1. 1분마다 규칙을 정기적으로 실행:
1분마다 실행: */1 * * * * 또는 * * * * *
5분마다 실행: */5 * * * *

2. 매시간 규칙 실행:
매시간 실행: 0 * * * *또는 0 */1 * * *
매일 오전 7시에 실행: 0 7 * * *
매일 오전 7시 10분 실행: 10 7 * * *

3. 매일 정기적으로 규칙 실행:
매일 실행 0 0 * * *

4 매주 정기적으로 규칙 실행:
매주 한 번 규칙 실행 0 0 * * 0

5. 매월 정기적으로 규칙 실행:
매월 규칙 실행 0 0 1 * *

6 매년 규칙 실행:
0 0 1 1 *

7 매년. 기타 예
5 * * * * 매시 5분에 실행되도록 ls 명령을 지정
30 5 * * * ls 매일 5시 30분에 실행되도록 ls 명령을 지정
30 7 8 * * ls는 ls 명령이 매월 8일 7시 30분에 실행되도록 지정합니다.
30 5 8 6 * ls는 ls 명령이 매년 6월 8일 5시 30분에 실행되도록 지정합니다.
30 6 * * 0 ls는 매주 일요일의 6을 지정합니다: 30 ls 명령을 실행합니다. [참고: 0은 일요일을 의미하고, 1은 월요일 1을 의미합니다. 영어로도 표현할 수 있으며, sun은 일요일을 의미하고, mon은 월요일을 의미합니다. ]
30 3 10,20 * * ls 매월 10일, 20일 3시 30분에 ls 명령을 실행합니다. [참고: ","는 여러 개의 불연속 기간을 연결하는 데 사용됩니다.]
25 8-11 * * * ls Every day 8시부터 11시까지 25분에 ls 명령을 실행합니다. [참고: "-"는 연속된 마침표를 연결하는 데 사용됩니다.]
*/15 * * * * ls 15분마다 ls 명령을 실행합니다. [i.e. 매 시간 45 60분 후에 ls 명령 실행]
30 6 */10 * * ls 매월 10일마다 6시 30분에 ls 명령을 실행합니다. 매월 31일 ls 명령을 한 번 실행합니다. ]

【추천 학습: PHP 비디오 튜토리얼

위 내용은 매일 자동으로 PHP를 실행하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿