定时任务

at

一次性计划任务

安装: apt install at

一次性计划任务AT
  at队列
用来存储尚未执行的任务,一旦执行了就从队列中将任务删除
队列的保存位置/var/spool/at/
  at服务
用来检测和执行任务,每间隔1一分钟就会检查队列中是否有到时的任务. 
  at工具
用来添加,查看,删除定时任务的工具
at服务的启动和停止
  service atd status
   
at 参数                         echo 00000 > /var/spool/at/.SEQ  清除任务id
-l 查看任务列队
-d 删除任务
建立任务
  [root@gw ~]# date
  2009年 05月 29日 星期五 20:23:36 CST
  [root@gw ~]# at 20:26(一个时间)
  at> touch /root/zuihouyiye.log 
  at> <EOT>  (ctrl+d)
  job 1 at 2013-12-20 20:26
查看一次性计划任务 atq
                at -l
删除一次性计划任务 atrm job号(atq可以看到job号)
                at -dq

周期性计划任务cron

cron格式 (man 5 crontab)
min hour day mon week commands
min: 分 00-59
hour: 时 00-23
day: 日 1-31
mon: 月 1-12
week: 周 0-7  0和7都是周日
command:要执行的任务--计划任务的命令要写清楚命令完整路径


添加计划任务

创建计划任务:crontab -e
查看计划任务:crontab -l
删除计划任务:crontab -r

示例:
使用方法
   分 时 日 月 周
1. 00 03 * * * cmd      ----- 单一时间,每天3点
2. 30 23 *** cmd        ----- 每天23:30
3. 00 9,12,22 * * * cmd ----- 多个时间
4. 00 9-12 * * * cmd    ----- 9-12点,连续时间
59 23 ** 1-5 cmd        ----- 周一到周五
6. * * * * * cmd        ----- 所有时间
7. */5 * * * * cmd      ----- 每间隔5分钟
8. 59 23 ** 1,3,5 cmd   ----- 每个周一,周三,周五的23:59

1. 每隔两分钟向/mnt/error.log中写入一行aaa
  */2 **** /bin/echo "aaa">>/mnt/error.log 
2. 每天19:20重启服务器
  20 19 *** /sbin/init 6
3. 每周一,周三,周五晚上23:00重启服务器
  00 23 ** 1,3,5 /sbin/init 6
4. 周一到周五每天00:00重启服务器
  59 23 ** 1-5 /sbin/init 6
5.每天凌晨3:00把网站制作一个压缩包,并且拷贝到/mnt下,而且压缩包的名字中必须要有日期
{
思路:考虑基本命令
具体操作方法
创建一个执行脚本  vi web.sh
内容如下
#!/bin/bash
DATE=`date +%Y-%m-%d`
file=web-${DATE}.tar.gz
tar czf /tmp/$file /var/www/html
mv -a /tmp/$file /mnt
}
00 03 * * 0 web.sh  计划任务执行这个脚本