且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Linux 定时任务——crontab 的使用

更新时间:2022-06-03 18:50:35

cron 是一个可以用来根据时间、日期、月份、星期的组合来调度对重复任务的执行的守护进程。

名称 : crontab 
使用权限 : 所有使用者 
使用方式 : 
crontab [ -u user ] file 
crontab [ -u user ] { -l | -r | -e } 
说明 : 
crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。 
餐数 : 
-e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL  joe) 
-r : 删除目前的时程表 
-l : 列出目前的时程表 

基本格式 : 
*  *  *  *  *  command 
分 时    日   月     周     命令 
第1列表示分钟1~59 每分钟用*或者 */1表示 
第2列表示小时1~23(0表示0点) 
第3列表示日期1~31 
第4列表示月份1~12 
第5列标识星期几0~6(0表示星期天) 
第6列要运行的命令 

一个简单的python脚本,按cron要求显示当前时间:

1 #python by KryptosX
2 #按照cron要求格式显示当前时间
3 #minute hour day month dayofweek
4 import datetime 
5 CRON_FORMAT = '%M %H %d %m %w'
6 datetime.datetime.now().strftime(CRON_FORMAT)

 

执行情况:

如果执行的命令会在控制台中显示信息,那么它将会使用邮件发送给当前用户

1 Heirloom Mail version 12.5 7/5/10.  Type ? for help.
2 "/var/spool/mail/kryptosx": 8 messages
3 >   1 (Cron Daemon)         Wed Jun 11 16:00  28/1069  "Cron <kryptosx@localhost>"
4  
5 #邮件的内容中显示的就是你执行这个命令时控制台显示的内容。比如执行失败。
6 /bin/sh: /home/kryptosx/a.cpp: 权限不够

关于mail命令的使用见《Linux邮箱——mail命令》

转载请注明:旅途@KryptosX » Linux 定时任务——crontab 的使用