crontab-at-阿里云开发者社区

开发者社区> 开发与运维> 正文

crontab-at

简介:

linux任务计划,周期性的任务执行

未来的某个时间点执行一次任务:at,batch

周期性的运行某个任务:cron


电子邮件服务:

smtp:simple mail transmission protocol,用于传输邮件:

pop3:post office protocol 

imap4:Internet mail access protocol 

mailx -send and receive internetl mail

mailx -s "hi" root

at命令

at 17:10

输入要定时执行的命令后输入ctrl+d完成

time

HH:MM

noon,midnight,teatime

tomorrow

now+#{minutes,hours,days,OR weeks}

at now+3minutes

at -l或者atq等待运行的作业

at -d 1删除作业

atrm 1删除作业

at -c 1具体的作业任务

-f /path/from/somefile.指定文件中读取任务

batch命令

让系统自动选择空闲时间去执行指定的任务;

周期性任务计划:

相关程序包:

cronie:主程序,提供crod进程及相关辅助工具

cronie-anacron:用于监控任务执行状况:如果任务没有在指定的时间点运行,则anacron会在随后启动一次此任务

crontabs:包含了Centos提供系统维护任务;

确保crond已经启动

centos7:systemctl status crond

centos6:service crond status

计划要周期性执行的任务需要提交给crond,由其来实现到点运行。

系统cron任务:

/etc/crontab

用户cron任务:

crontab命令

# For details see man 4 crontabs


# Example of job definition:

# .---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  |  .---------- day of month (1 - 31)

# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...

# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  * user-name command to be executed


例子:晚上9点10分运行echo命令

10 21 * * * root /bin/echo "hi"

时间表示法:

(1)特定值:

给定时间点有效范围内的值;

(2)*

给定时间点上有效取值范围内的所有值;

表示“每。。。”

(3)离散取值:,

#,#,#

(4)连续取值:-

#-#

(5)在指定时间范围上,定义步长:

/#:#为步长

*/3

没3小时echo命令

0 */3 * * * root /bin/echo "hi"

用户cron:

crontab命令定义,每个用户都有专用的cron任务文件:/var/spool/cron/username

crontab -e 编辑任务

crontab -l 列出任务

crontab -r 移除所有任务

crontab -i 交互式模式让用户有选择的移除任务

crontab -u user :仅root可以运行,代为为指定用户管理cron任务

crontab -u oracel -e 



加任务:

 crontab -e   

 0 */1 * * * command   

 0 */2 * * * command 

 查询任务是否加了:   

 crontab -l   

 0 */1 * * * command   

 0 */2 * * * command   

 基本格式 : 

 *  *  *  *  *  command

 分 时 日 月 周 命令 

 第1列表示分钟1~59 每分钟用*或者 */1表示 

 第2列表示小时1~23(0表示0点) 

 第3列表示日期1~31 

 第4列表示月份1~12 

 第5列标识号星期0~6(0表示星期天) 

 第6列要运行的命令 

 crontab文件的一些例子: 

 30 21 * * * /usr/local/etc/rc.d/lighttpd restart 

 上面的例子表示每晚的21:30重启apache。 

 45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart 

 上面的例子表示每月1、10、22日的4 : 45重启apache。 

 10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart 

 上面的例子表示每周六、周日的1 : 10重启apache。 

 0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart 

 上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。 

 0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart 

 上面的例子表示每星期六的11 : 00 pm重启apache。 

 * */1 * * * /usr/local/etc/rc.d/lighttpd restart 

 每一小时重启apache 

 * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart 

 晚上11点到早上7点之间,每隔一小时重启apache 

 0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart 

 每月的4号与每周一到周三的11点重启apache 

 0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart 

 一月一号的4点重启apache





     本文转自阿伦艾弗森 51CTO博客,原文链接:http://blog.51cto.com/perper/1953397,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章