文章来源:王琦的个人博客-linux定时任务的使用 ,互联网打杂,喜欢多语言编程,记录一些知识碎片,分享一些心得。
Linux定时任务的基本用法
crontab命令参数和语法
常用参数说明
-e 编辑crontab文件
-l 显示crontab内容
编写格式
* * * * * 要执行的命令或脚本
* * * * * echo 1 >> /tmp/log.txt
每列的含义
共有5列,简单计为分时日月周。
minute:表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
最后跟上要执行的命令或者脚本。
其中每列可以使用操作符来表示
- 星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作
- 逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
- 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
- 正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
crontab使用
# 每10分钟
*/10 * * * *
# 每小时
* */1 * * *
# 每天凌晨1点
0 1 * * *
# 18点-23点每30分钟
*/30 18-23 * * *
# 7点到9点每分钟执行
* 7-11 * * *
# 7到11点每小时
0 7-11 * * *
# 23点,0点-7点每小时执行
0 23,0-7 * * *
# 23点到7点之间每隔1小时执行
* 23-7/1 * * *
定时任务遇到的问题
定时任务结尾不追加>/dev/null 2>&1 或不追加到文件,会导致inode空间被占满,从而系统服务不正常。
-
邮件的软件没有开启, 则大量小文件堆积在/var/spool/postfix/maildrop/ — 导致inode被占满.
-
邮件开启了–定时任务会不断的给root用户发邮件。 解决方法,关闭邮件
/etc/init.d/postfix status
/etc/init.d/postfix stop
chkconfig postfix off 关闭开机启动
chkconfig | grep postfix
postfix 0:off 1:off 2:off 3:off 4:off 5:off 6:off