cron은 수동 개입 없이 작업을 실행할 수 있는 Linux 예약 실행 도구입니다.
1. crontab 정보
Ubuntu 서버에는 cron이 기본적으로 설치되어 시작됩니다. /etc/crontab 파일을 통해 다음 내용을 볼 수 있습니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 로그인 후 복사 |
# /etc/crontab: system-wide crontab# Unlike any other crontab you don’t have to run the `crontab’# command to install the new version when you edit this file# and files in /etc/cron.d. These files also have username fields,# that none of the other crontabs do. SHELL=/bin/shPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command17 * * * * root cd / && run-parts –report /etc/cron.hourly25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.daily )47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.weekly )52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.monthly )# 로그인 후 복사 |
——————————————————————————————————————————
전화로 문의하세요 run-parts 명령을 사용하여 4개의 디렉터리에 있는 모든 스크립트를 정기적으로 실행합니다.
1) /etc/cron.hourly, 디렉토리의 스크립트는 매시간 17분에 실행됩니다.
2) /etc/cron.daily, 디렉토리의 스크립트는 하루에 한 번 실행됩니다. , 매일 6시 25분에 실행
3) /etc/cron.weekly, 디렉토리의 스크립트는 일주일에 한 번 실행되고 매주 7일 6시 47분에 실행됩니다.
4)/ etc /cron.mouthly, 디렉토리에 있는 스크립트는 한 달에 한 번, 매월 1일 6시 52분에 실행됩니다.
물론 위 시간은 시스템 기본 시간이며 필요에 따라 수정될 수 있습니다.
2. cron 서비스 시작 및 중지
Ubuntu 9.10에서는 cron이 기본적으로 설치되고 시작됩니다. 우분투에서 cron을 시작, 중지 및 다시 시작하는 작업은 모두 /etc/init.d/에서 스크립트를 호출하여 수행됩니다. 명령은 다음과 같습니다.
1) /sbin/service crond start // 서비스 시작
2) /sbin/service crond stop // 서비스 닫기
3) /sbin/service crond restart // 서비스 다시 시작
4 ) /sbin/service crond reload // 구성 다시 로드
다음 명령을 통해 cron이 실행 중인지 확인할 수 있습니다. (실행 중인 경우 프로세스 ID가 반환됩니다.)
# pgrep cron
3. 명령은 cron 백그라운드 프로세스를 구동하는 데 사용되는 테이블을 설치, 삭제 또는 나열하는 데 사용됩니다. 즉, 사용자는 실행을 위해 실행해야 하는 일련의 명령을 crontab 파일에 넣습니다. 각 사용자는 자신의 crontab 파일을 가질 수 있습니다. 다음은 이 명령의 일부 매개변수와 설명입니다.
1) crontab -u // 특정 사용자의 cron 서비스 설정2) crontab -l // 특정 사용자의 cron 서비스 세부 정보 나열
3) crontab -r // 각 사용자의 크론 서비스 삭제
4) crontab -e // 특정 사용자의 크론 서비스 편집
의미 | 예 | |||||||||||||||||||||||||||||||||||
표시 사용자의 Crontab 파일 내용 tCrontabl -L | -I | |||||||||||||||||||||||||||||||||||
Crontabl -Ri | -R | |||||||||||||||||||||||||||||||||||
Crontabl -R -R - R -R | -e | |||||||||||||||||||||||||||||||||||
crontab -e |
/etc/crontab文件语法如下:
举例如下:
4. 新增 cron 任务 推荐使用crontab -e命令添加自定义的任务(编辑的是/var/spool/cron下对应用户的cron文件,在/var/spool/cron下的crontab文件 不可以直接创建或者直接修改,crontab文件是通过crontab命令得到的)。 # crontab -e 1)直接执行命令行 2)shell 文件
———————————————————————————————————————– 3)php 文件
5. 其他 /var/spool/cron/ 该目录下存放所有用户的cron服务 6. 一个超级用户的 crontab
7. 例子 ●30 5 * * * root /sbin/init 6 这样就将系统配置为了每天早上5点30自动重新启动。 ● 50 7 * * * /sbin/service sshd start 意思是每天7:50开启ssh服务 ● 50 22 * * * /sbin/service sshd stop 意思是每天22:50关闭ssh服务 ● 0 0 1,15 * * fsck /home 每月1号和15号检查/home 磁盘 ● 1 * * * * /home/bruce/backup 每小时的第一分执行 /home/bruce/backup这个文件 ● 00 03 * * 1-5 find /home “*.xxx” -mtime +4 -exec rm {} /; 每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。
这条语句将在每天的凌晨3点12分(03:12)运行 tar czf /usr/local/backups/daily/etc.tar.gz /etc 命令。>> /dev/null 2>&1 表示把所有标准输出发送到 /dev/null(linux的回收站),把标准错误输出(2)发送到和标准输出(1)同样的地方(即 /dev/null)。运行这行命令将不会产生任何输出。 这条语句可以变得稍微复杂一点:
它将在6月13日周一的15:30运行 tar czf /usr/local/backups/daily/etc.tar.gz /etc 命令。 以下语句可以达到同样的效果:
如果你想以用户joey的身份每小时的第15分钟运行某个程序,可以使用:
其中的星号(*)是通配符,表示cron将忽略这个字段。 如果你想每两小时就运行某个程序,可以在小时字段里使用 */2。它将会在2点,4点,6点……22点,24点运行。具体语句如下:
cron语句中还可以使用逗号(,)来指定多个时间。例如你想在每小时的15分和30分运行某个程序,可以在分钟字段使用 15,30:
如果你想在每月的第一周(即1号到7号)每天的指定时间运行某个程序,可以在日期字段使用 1-7:
这条语句将在每月的第1-7日每两小时的15分和30分(02:15,02:30……22: 15,22:30等)运行 /usr/bin/somecommand 命令。 如果你想在每天的16:18执行一个脚本集合,可以把所有要执行的脚本放到一个目录中(如 /home/username/cron),可以使用:
如果你想保存某个程序的输出结果, 可以把 >> /dev/null 2>&1 替换为 >> /home/user/somecommand.log 2>&1 。 转自:http://blog.enjoydiy.com/2011/10/415.html 相关推荐: |
위 내용은 Ubuntu cron 예약 작업 실행의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!