最近在unbuntu环境下需要定时执行某个任务,经过一番搜索,总结起来网上的方法主要有两种,每一种应该都有自己的适合场景,分别是使用crontab和在脚本中执行循环并运行sleep命令。crontab的方法在按秒执行会比较麻烦,更适合于间隔时间较长的执行过程。而运行sleep命令适合于时间较短的重复执行。
使用crontab的方法:
使用crontab -e打开编辑模型,在新打开的文件中添加一行代码,代码由6列组成如(1 1 * * * command),每一列分别对应与分钟,小时,日(一个月中的第几天),月份,星期 定时执行的命令。*则是通配符,表示该列的项目任意。
对于使用crontab按秒执行的,网上有说到一种代码格式如下,表示一分钟的每10秒执行某个特定命令
* * * * * sleep 10 && command
* * * * * sleep 20 && command
* * * * * sleep 30 && command
* * * * * sleep 40 && command
* * * * * sleep 50 && command
* * * * * sleep 60 && command
使用sleep方法
可以编写一个循环的脚本,在其中运行程序,并且使用sleep命令,例如,打开一个文本文件,输入
while true
do
command
sleep 5
done
使用chmod a+x 将该文件的类型修改为可执行,运行该文件就实现了每5秒执行一次该程序。
参考
http://www.linuxidc.com/Linux/2011-12/48861.htm
http://oplinux.com/order/crontab-ss.html
http://askubuntu.com/questions/800/how-to-run-scripts-every-5-seconds-using-cron