您的位置:首页 > 运维架构 > Linux

Linux系统设置定时任务

2016-03-23 11:48 387 查看
使用crontab命令,下面一起来看一下~
 首先需要启动crontab服务

 

service crond start #启动服务

service crond stop #关闭服务

service crond restart #重启服务

service crond reload #重新载入配置
 

 

然后使用crontab -e进行编辑,然后进行例行任务的编辑,之后保存退出即可。

具体的格式说明如下:

 每一行的格式为:分 时 日 月 周 命令

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

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

第3列表示日期1~31

第4列表示月份1~12

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

第6列要运行的命令
 

值得注意的是,在crontab中,无论是命令还是文件的路径都要写全,否则不认。

比如要每天6点执行一个/home/run/test.sh的脚本,可以配置如下:

0 6 * * * /sbin/sh /home/run/test.sh 

或者

0 6 * * * cd /home/run && /bin/sh test.sh

这里需要注意的是,test.sh脚本中的命令也需要使用全路径,否则crontab找不到的。

 如果还想有一些其他的需求,比如保留输出可以将输出重定向,与正常的脚本运行没有区别

 

0 6 * * * cd /home/run && /bin/sh test.sh > log

一些例子:
30 21* * * /apps/bin/cleanup.sh

上面的例子表示每晚的2 1 : 3 0运行/ a p p s / b i n目录下的c l e a n u p . s h。
45 4 1,10,22 * * /apps/bin/backup.sh

上面的例子表示每月1、1 0、2 2日的4 : 4 5运行/ a p p s / b i n目录下的b a c k u p . s h。
10 1 * * 6,0 /bin/find -name “core” -exec rm {} ;

上面的例子表示每周六、周日的1 : 1 0运行一个f i n d命令。
0,30 18-23 * * * /apps/bin/dbcheck.sh

上面的例子表示在每天1 8 : 0 0至2 3 : 0 0之间每隔3 0分钟运行/ a p p s / b i n目录下的d b c h e c k . s h。

0 23 * * 6 /apps/bin/qtrend.sh

上面的例子表示每星期六的11 : 0 0 p m运行/ a p p s / b i n目录下的q t r e n d . s h

实现定时task的两种方式

一种是编辑一个文件,用crontab 载入

一种是用crontab -e 直接编辑生效

例子:

每隔以一分钟往一个文件打入一堆字符

先vi crontab1

#every minute echo char to file

1-59 * * * * echo `date`” mysql” >> /opt/shuju/dazi.txt

最好加上注释

这样就能明确当前的这个定时任务的目的

然后 crontab crontab1载入crontab1这个定时任务

另外一种是

crontab -e

#every minute echo char to file

1-59 * * * * echo `date`” tian” >> /opt/shuju/da.txt

date 用单引号,是表示如果date是一个命令,就作为命令执行

如果你直接用date ,那么输出的是”date”这个字符串,而不是date这个命令的执行结果

>> 是附加到文件末尾,而>是直接覆盖文件

如果crontab -e无法编辑

那么是你的环境变量没有配置

请你进入 vi /etc/profile

加上

EDITOR=vi

export EDITOR

crontab -l 列出所有定时任务 如果要删除一个定时任务

那么

crontab -e

注释掉对应定时任务语句

例如要删除我刚刚定义的那个定时任务

#every minute echo char to file

1-59 * * * * echo `date`” oracle” >> /opt/shuju/tj.txt

只需要

#every minute echo char to file

#1-59 * * * * echo `date`” oracle” >> /opt/shuju/tj.txt

如果用crontab -r

就删除拉所有的定时任务(需要特别小心)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux