Linux操作系统定时任务系统 Cron 入门(linux计划任务)
cron是一个linux下 的定时执行工具 ,可以在无需人工干预的情况下运行作业。由于Cron 是Linux 的内置 服务,但它不自动起来,可以用以下的方法 启动、关闭 这个服务:
/sbin/service crond start 或 service cron start //启动服务
/sbin/service crond stop 或 service cron stop //关闭服务
/sbin/service crond restart 或 service cron restart //重启服务
/sbin/service crond reload 或 service cron reload //重新载入配置
你也可以将这个服务在系统启动的时候自动启动:
在/etc /rc.d/rc.local 这个脚本的末尾加上:
/sbin/service crond start
现在 Cron 这个服务已经在进程里面了,我们就可以用这个服务了,Cron服务提供以下几种接口供大家使用:
1.直接用crontab 命令编辑
cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数 与说明:
crontab -u //设定某个用户的cron服务,一般root 用户在执行 这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除某个用户的cron服务
crontab -e //编辑某个用户的cron服务
比如说root查看自己的cron设置:crontab -u root -l
再例如,root想删除fred的cron设置:crontab -u fred -r
在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e
进入vi 编辑模式 ,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.tx t
任务调度的crond常驻命令
crontab的格式:
第1列分钟1~59
第2列小时1~23(0表示子夜)
第3列日1~31
第4列月1~12
第5列星期0~6(0表示星期天)
第6列要运行的命令
下面是crontab的格式:
分 时 日 月 星期 要运行的命令
这里有crontab文件条目的一些例子:
30 21 * * * /usr/local/apache/bin/apachectl restart
上面的例子表示每晚的21:30重启apache。
45 4 1,10,22 * * /usr/local/apache/bin/apachectl restart
上面的例子表示每月1、10、22日的4 : 45重启apache。
10 1 * * 6,0 /usr/local/apache/bin/apachectl restart
上面的例子表示每周六、周日的1 : 10重启apache。
0,30 18-23 * * * /usr/local/apache/bin/apachectl restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。(最后一次的任务执行时间为23:30)
0 23 * * 6 /usr/local/apache/bin/apachectl restart
上面的例子表示每星期六的 23 : 00 重启apache。
*/60 * * * * /usr/local/apache/bin/apachectl restart
每60分钟重启apache
* 23-7/1 * * * /usr/local/apache/bin/apachectl restart
晚上23点和凌晨0-7点之间每隔一小时的每分钟都执行重启apache
0 11 4 * mon-wed /usr/local/apache/bin/apachectl restart
每月的4号与每周一到周三的11点重启apache(周和日尽量不要同时使用)
0 4 1 jan * /usr/local/apache/bin/apachectl restart
一月一号的4点重启apache
crontab 的定时任务的输出最好重定向至日志文件或 /dev/null
因为输出中文字符时可能出现问题,导致正常执行命令没问题,crond执行失效
python脚本写入文件示例:
f.write(str(datetime.datetime.now()) + ':' + msg.encode('utf8') + '\n')