crontab 可以方便的用来创建周期性任务,也许你想每天某个时间执行python 程序,或每周五的某个
时间执行。crontab 像windows 的计划任务一样方便,或者更加灵活。
file_time.py
#!/usr/bin/python
#coding=utf-8
import time
f=open('123.txt','a')
now = time.strftime('%Y-%m-%d-%H_%M_%S',time.localtime(time.time()))
f.write('file run time:'+now+'
')
f.close()
这次,我们以追加的方式,获取当前时间写入到123.txt 文件中。也就是说程序每运行一次,获取一次
当前时间追加(不是替换)写入到123.txt 文件中。
运行一次file_time.py
fnngj@fnngj-VirtualBox:~/test$ python file_time.py
查看123.txt 文件内容
fnngj@fnngj-VirtualBox:~/test$ cat 123.txt
file run time:2014-01-09-17_53_17
下面通过crontab 来创建任务:
为更快的看到任务是否被多次执行的效果,我们要求file_time.py 每小时过5分钟执行一次。
fnngj@fnngj-VirtualBox:~/test$ crontab -e
crontab: installing new crontab
输入crontab - e 命令进入crontab 文件:
按键盘i、o、a 任意一个键进入编辑状态,可以对文件进行修改。
分钟小时天月星期命令/脚本
5 * * * * python /home/fnngj/test/file_time.py
按照上面的格式写入内空。
ctrl+x 离开,提示是否保存任务?按y 保存任务退出。(不同版本linux 对crontab 文件的编辑/退出
会有差异。)
完成crontab 任务创建后,会有如下提示:
crontab: installing new crontab
启动crontab 服务:
注意:在完成编辑以后,要重新启动cron 进程,crontab 服务操作说明:
~# /etc/init.d/cron restart //重启服务
~# /etc/init.d/cron start //启动服务
~# /etc/init.d/cron stop //关闭服务
~# /etc/init.d/cron reload //重新载入配置
查看crontab 任务计划:
root@fnngj-VirtualBox:~# cd /var/spool
查看123.txt 文件:
在创建完任务后,你可能需要等上一段时间才能看到文件中被写入的内容。
crontab 格式说明:
crontab 的命令格式
crontab {-l|-r|-e}
-l 显示当前的crontab
-r 删除当前的crontab
-e 使用编辑器编辑当前crontab 文件
好多人都觉得周期计划任务设置起来比较麻烦,其实我们只要掌握规律就很好设置。