linux计划任务
一次性计划任务
yum install at -y
启动服务
/etc/init.d/atd start
执行:
指定执行时间 at 4:30
ctrl+d 完成编辑
查看执行任务 at -l
指定时间的方式有很多,详情可以man at 查看:
at 3:30pm apr 26
at 5:08pm 2016-03-16
这些任务都存放在/var/spool/at/这个文件夹中
删除计划任务
atrm 7 删除工作号为7的任务
循环计划任务
安装
yum install crotabs -y
启动
/etc/init.d/crond start
编辑计划任务(e:edit u 指定用户,没有u默认给root指定计划任务)
crontab -e
crontab -e -u itliucheng
时间和动作
时间顺序不能乱:分 小时 日 月 周
5 18 20 5 * 代表五月20号18时5分,之所以不写周,是不能确定20号是周几,所以日和周只写一个就行,另一个写*
每五分钟执行一次: */5 * * * *
每小时的1~5和9~20分钟,每分钟执行一次:1-5,9-20 * * * *
每小时的第一第八第十分钟各执行一次:1,8,10 * * * *
动作:
*/1 * * * * touch /test/job_`date +%y%m%d%H%M%S`.txt
编辑的动作:同名的文件只能建一次,所以文件名上加上时间 date的执行要用``,因为date的值是 Wed Mar 16 05:56:27 EDT 2016
所以要格式化一下
上述计划任务代表每分钟新建一个文件,但是事实上他并没有新建,我们查看一下日志:
tail -f /var/log/cron
可以看出他只执行了一半,文件名太长了,后边的没有执行,这个时候我们可以把这个任务写到一个脚本文件中,然后执行这个脚本文件
改为执行/tmp/cron.sh文件
然后编辑这个文件
脚本文件第一行:#!/bin/bash固定
在查看日志,发现能正常执行了
查看任务:crontab -l
这些任务都放在 /var/spool/cron中
当系统无故死机再开启的时候,有个系统文件anacron会检测当前时间和任务时间,然后准备执行要执行的任务
------------------------------------
其实系统自身也带有计划任务
daily是系统每天都会执行的,同理还有hourly monthly weekly
计划任务的用户控制
at.allow
at.deny
cron.allow
cron.deny
写在allow中的用户名允许实行计划任务,deny的用户不允许执行,allow和deny只写一个就行,因为有allow文件后就不会去检查deny