Linux - 创建定时任务
crontab命令
用来创建周期性定时任务
crontab {-l|-r|-e}
-l 显示当前的 crontab
-r 删除当前的 crontab
-e 使用编辑器编辑当前 crontab 文件
输入 crontab - e 命令进入 crontab 文件,按键盘 i、o、a 任意一个键进入编辑状态,可以对文件进行修改。
字段含义及范围
分钟(0-59) --- 小时(0-23) --- 天(1-31) --- 月(1-12) --- 星期(0-7) --- 命令/脚本
以上各个字段可以使用以下特殊字符:
- 星号(*) :代表所有可能的值,例如 month 字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
- 逗号(,) :可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
- 中杠(-) :可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
- 正斜线(/) :可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。
- 同时正斜线可以和星号一起使用,例如*/10,如果用在 minute 字段,表示每十分钟执行一次。
完成 crontab 任务创建后,会提示:“crontab: installing new crontab”
注意:在完成编辑以后,要重新启动 cron 进程,crontab 服务操作说明:
~# /etc/init.d/cron restart //重启服务
~# /etc/init.d/cron start //启动服务
~# /etc/init.d/cron stop //关闭服务
~# /etc/init.d/cron reload //重新载入配置
示例
每周一和三的17点执行脚本:* 17 * * 1,3 [脚本]
工作日下班后自动关机: * 18 * * 1-5 /usr/bin/shudown -h now
at命令
用来创建一次性定时任务(atd服务必须启动)
at -l 或 atq //查看 at 创建的任务
atrm job-id //删除已经创建的任务。job-id 是通过at -l 或 atq 查询到的任务编号。
指定时间
例如,指定在今天下午17:30执行某命令(假设现在时间是下午14:30,2016年11月08日)
- 绝对计时方法:
HH:MM --- at 17:30
HH:MM YY-MM-DD --- at 17:30 16-11-08 - 相对计时方法:
now+n minutes --- at now+180 minutes
mow+n hours --- at now+3 hours
mow+n days
任务编写
执行指定时间后,就可以编写在这个时间的定时任务内容了,按ctrl+d键退出
示例
$ ls -l
总用量 4
-rw-rw-r--. 1 Anliven Anliven 83 11月 8 15:40 test.sh
$
$ cat test.sh
#!/usr/bin/bash
echo "this is a test for at job!" >> output.log
date >> output.log
$
$ at now+1 minutes
at> sh ./test.sh
at> <EOT>
job 14 at Tue Nov 8 15:45:00 2016
$
$ ls -l
总用量 8
-rw-rw-r--. 1 Anliven Anliven 70 11月 8 15:45 output.log
-rw-rw-r--. 1 Anliven Anliven 83 11月 8 15:40 test.sh
$
$ cat output.log
this is a test for at job!
2016年 11月 08日 星期二 15:45:00 CST
$
行动是绝望的解药!
欢迎转载和引用,但请在明显处保留原文链接和原作者信息!
本博客内容多为个人工作与学习的记录,少数内容来自于网络并略有修改,已尽力标明原文链接和转载说明。如有冒犯,即刻删除!
以所舍,求所得,有所获,方所成。