최근에 예약된 작업에 대해 많은 질문을 받았습니다. 솔직히 말해서 PHP 스크립트 자체에는 예약된 작업을 생성하기 위해 결합할 수 있는 한두 가지 기능이 있지만 첫 번째 선택은 시스템 작업을 계획하는 것입니다. Win 시스템이든 Linux 시스템이든, 우리가 해야 할 일은 이러한 기능을 잘 활용하는 것입니다. Linux에서 예약된 작업에 대한 자세한 설명은 너무 길기 때문에 직접 찾아보았습니다. 필요하다면 한 번 살펴보세요. 특정 PHP 파일에 대해 너무 많이 이야기하지 마세요~
크론은 작업을 실행하지 않고도 작업을 실행할 수 있는 도구입니다. 수동 개입. Cron은 Linux에 내장된 서비스이지만 자동으로 시작되지 않으므로 다음 방법을 사용하여 서비스를 시작하고 종료할 수 있습니다.
/sbin/service crond start //서비스 시작
/ sbin/service crond stop //서비스 닫기
/sbin/service crond restart //서비스 다시 시작
/sbin/service crond reload //구성 다시 로드
시스템이 종료될 때 이 서비스를 자동으로 시작할 수도 있습니다. 시작:
스크립트 끝에 /etc/rc.d/rc.local 추가:
/sbin/service crond start
이제 Cron 서비스가 이미 프로세스 중이므로 다음을 사용할 수 있습니다. 이 서비스는 다음 인터페이스를 누구나 사용할 수 있습니다.
1. crontab 명령으로 직접 편집
cron 서비스는 cron 서비스를 설정하는 crontab 명령을 제공합니다. 이 명령에 대한 설명:
crontab -u / /특정 사용자의 cron 서비스를 설정합니다. 일반적으로 루트 사용자는 이 명령을 실행할 때 이 매개변수가 필요합니다.
crontab -l //특정 사용자의 cron 세부 정보를 나열합니다. service.
crontab -r //특정 사용자를 삭제합니다.
crontab -e //사용자의 cron 서비스를 편집합니다.
예를 들어 루트는 자신의 cron 설정을 확인합니다. crontab -u root - l
또 다른 예, root는 fred의 cron을 삭제하려고 합니다. 설정: crontab -u fred -r
cron 서비스를 편집할 때 편집된 내용에는 몇 가지 형식과 규칙이 있습니다. Enter: crontab -u root -e
vi 편집 모드로 들어가려면 편집된 내용이 다음 형식을 준수해야 합니다: */1 * * * * ls >> /tmp/ls.txt
이 형식의 첫 번째 부분은 시간 설정이며, 뒷부분은 실행할 명령입니다. 실행할 명령이 너무 많으면 이러한 명령을 스크립트에 작성한 다음 호출할 때 명령의 전체 경로를 여기에 직접 작성하십시오. 처음 5개의 * 기호는 5개의 숫자를 나타냅니다. 값 범위와 숫자의 의미는 다음과 같습니다.
분(0-59)
시간(0-23)
날짜(1-31)
월(1-12)
주(0-6) //0은 일요일을 나타냅니다.
숫자 외에도 '*'와 같은 여러 특수 기호가 있습니다. '/' 그리고 '-', ',', *는 값 범위 내의 모든 숫자를 나타내고, '/'는 모든 의미를 나타내며, '*/5'는 5단위마다를 나타내고, '-'는 특정 숫자부터 특정 숫자까지를 나타냅니다. ,','는 여러 개의 개별 숫자를 구분합니다. 다음은 문제를 설명하는 몇 가지 예입니다.
매일 아침 6시
0 6 * * * echo 'Good morning.' cron은 모든 출력을 루트 사서함으로 이메일로 보내기 때문에 화면에서 어떤 출력으로도 볼 수 없는 간단한 에코입니다.
2시간마다
0 */2 * * * echo '지금 휴식을 취하세요.' >> /tmp/test.txt
오후 11시부터 오전 8시까지 2시간마다 시간, 8시 오전
0 23-7/2, 8 * * * echo '좋은 꿈 꾸세요:)' >> /tmp/test.txt
매월 4일, 월요일부터 오전 11시 ~ 수요일
0 11 4 * 1-3 명령줄
1월 1일 오전 4시
0 4 1 1 * 명령줄
편집 후 매번 사용자의 cron이 설정된 후 cron이 자동으로 생성됩니다. /var/spool/cron 아래에 사용자와 동일한 이름의 파일이 있습니다. 이 파일에는 crontab -e를 사용하여 직접 편집할 수 없습니다. cron이 시작된 후 매번 이 파일을 읽고 그 안에 있는 명령을 실행해야 하는지 확인합니다. 따라서 이 파일을 수정한 후 cron 서비스를 다시 시작할 필요가 없습니다.
2. /etc/crontab 파일을 편집하여 cron을 구성합니다
cron 서비스는 /var/spool/cron의 모든 파일을 1분에 한 번씩 읽어야 할 뿐만 아니라 /etc/crontab도 한 번씩 읽어야 합니다. 이므로 이 파일도 구성합니다. cron 서비스를 사용하여 몇 가지 작업을 수행할 수 있습니다. crontab을 사용한 구성은 특정 사용자를 위한 작업이고, /etc/crontab 편집은 시스템을 위한 작업입니다. 이 파일의 파일 형식은 다음과 같습니다.
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root //오류가 발생하면 또는 Data 출력이 있는 경우 해당 계정에 이메일로 데이터가 전송됩니다.
HOME=/ //사용자가 실행하는 경로, 루트 디렉터리입니다
# run-parts
01 * * * * root run-parts /etc/ cron.hourly //매시간 /etc/cron.hourly에 있는 스크립트를 실행
02 4 * * * root run-parts /etc/cron.daily ///etc에 있는 스크립트를 실행합니다. /cron.daily 매일
22 4 * * 0 root run-parts /etc/cron.weekly ///etc/cron.weekly에서 매주 스크립트 실행
42 4 1 * * root run-parts /etc/cron.monthly // 매월 /etc/cron.monthly에 있는 스크립트를 실행합니다.
'run-parts' 매개변수에 주의하세요. 이 매개변수를 제거하면 스크립트 이름을 쓸 수 있습니다. 폴더 이름 대신 실행됩니다.
---------------
기본 형식:
* *점)
3번째 열은 1~31일을 나타냅니다.
4번째 열은 1~12월을 나타냅니다.
5번째 열은 0~6주를 나타냅니다. (0은 일요일을 나타냅니다.)
6번째 열은
crontab 파일 명령의 일부 예:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
위 예는 lighttpd를 매일 21:30에 다시 시작하는 것을 의미합니다. 밤.
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
위의 예는 lighttpd가 1일, 10일, 22일 4시 45분에 다시 시작됨을 나타냅니다. 매달.
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
위의 예는 lighttpd가 매주 토요일과 일요일 1시 10분에 다시 시작됨을 나타냅니다.
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
위의 예는 lighttpd가 매일 18:00부터 23:00 사이에 30분마다 다시 시작됨을 나타냅니다. .
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
위의 예는 lighttpd가 매주 토요일 오후 11시에 다시 시작됨을 나타냅니다.
* */1 * * * /usr/local/etc/rc.d/lighttpd 재시작
매시간 lighttpd 재시작
* 23-7/1 * * * /usr/local/etc/ rc .d/lighttpd restart
밤 11시부터 오전 7시까지 매시간 lighttpd 다시 시작
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
매월 4일 lighttpd 다시 시작 매주 월요일~수요일 11시
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
1월 1일 4시에 lighttpd 다시 시작
이상은 PHP에서 예정된 작업 crontab에 대해 다양한 측면을 포함하여 자세히 설명하였으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.