一、周期运行
使用crontab命令将文件提交到cron进程进行调度,实现进程的周期运行。
crontab文件域编写
域1 2 3 4 5 6
分 时 日 月 星期 命令
(星期0代表星期日)
例子:
30 12 * * * /a.sh #每天12:30执行
*/10 * * * * /a.sh #每10分钟执行
10 2 * * 0,1 /a.sh #每周日、周一2:10执行
crontab文件提交
crontab filename
crontab查询任务
crontab -l
crontab删除任务
crontab -r
秒级周期运行实现
使用crontab原有的域只能实现最低分钟级周期运行,下面是是在shell脚本中实现秒级周期运行的方法。
在crontab上交的shell脚本中可以添加如下代码:
#!/bin/bash
# mytask.sh
# 10s运行一次
# 配合crontab文件的1分钟运行一次
# 该文件外部来看1分钟调用一次,内部执行了60s/10s次
sec=10
for ((i=0; i<60; i=i+$sec))
do
echo `date +%M\'%S` >> mycron.log
/test.sh
sleep $sec
done
crontab文件内容:
* * * * * ~/mytask.sh
二、定时运行
定时运行,只运行一次,可以使用at命令
在shell脚本中一般如下格式:
at -f filename [time] [date]
at查询任务
at -l
#或者
atq
at删除任务
at -d jobid
#或者
atrm jobid