计划任务:
at:一次性的,完成之后就没有了。
atq:查看当前at任务,等于at -l
第二行的at是crtl+d提交的结果。
如果没有指定的时间,则在规定日期的当天的,以该计划创建的时间点来执行任务。
指定时间点:
十天之后的八点:
从现在起,二十分钟后执行
删除某一条任务atrm 或者at -d
普通用户也可以支持做计划任务。
如果要限制某个用户做计划任务,则vi /etc/at.deny
里面直接写入想要拒绝的用户名。
要去除,则删除at.deny内的用户,或者建立一个at.allow,里面写入想允许的用户
crontab:周期性计划任务。
crontab -e :编辑
如果没有指定用户,则是对当前用户做计划任务。
-u 用户 -e 则表示对某个用户做计划任务
-l:查看计划任务
-u 用户 -l 查看指定用户的计划任务
#分 时 日 月 周 需要执行的命令。。这些时间之间的关系是和关系,必须全部都满足,才能执行命令,但是“日”和“周”是或关系,两者同时存在的时候,只需满足其一就可以了。
如果说不关心某个单位,或者具有“每”的意思,那么是用*。。。当我们强调整点的时候,分位需要写0
比如* 7 * * */bin/aa.sh 每天的七点钟,每过1分钟执行一次这个脚本
0 7 * * */bin/aa.sh 每天七点整执行一次脚本
如果某个时间内有多个时间段需要执行,则用“,”隔开
0,10,30 7 * * 1,2,3,4,5 /bin/aa.sh 周一到周五,每天七点的0分,10分30分执行一次
0,10,30 7 * * 1-5 /bin/aa.sh 上面的也可以写成这个格式。
0,10,30 7 * * 1-3,6 /bin/aa.sh 周一到周三和周六,每天七点的0,10,30分执行脚本
0-15/5 7 * * 1-5 /bin/aa.sh 周一到周五,每天七点整开始,每隔5分钟执行一次,直到7:15分停止。
crontab保存位置:/var/spool/cron 根据用户名区分crontab
crontab -r 删除计划任务
普通也能做计划任务。
若要拒绝某个用户做任务,则vi /etc/cron.deny 然后里面加入拒绝的用户就可以了。
若要删除某个拒绝的用户,删除cron.deny,或者在/etc/cron.allow内加入需要允许的用户。
放在红框内的脚本。每x都会执行一次。
思考:
crontab最多只能精确到秒,做个计划任务,如何精确到秒?
linux中crontab实现以秒执行任务
很多时候,我们计划任务需要精确到秒来执行,根据以下方法,可以很容易地以秒执行任务。
以下方法将每10秒执行一次
1.编辑crontab
crontab -e
* * * * * /bin/date >>/tmp/date.txt
* * * * * sleep 10; /bin/date >>/tmp/date.txt
* * * * * sleep 20; /bin/date >>/tmp/date.txt
* * * * * sleep 30; /bin/date >>/tmp/date.txt
* * * * * sleep 40; /bin/date >>/tmp/date.txt
* * * * * sleep 50; /bin/date >>/tmp/date.txt
2.检查结果
tail -f /tmp/date.txt
* * * * * 表示,只要执行完了命令,立即执行