LINUX_计划任务

Chapter04_Scheduling Future Linux Tasks

计划任务:

at:一次性的,完成之后就没有了。

wKioL1XrvMLyXBnVAABnjOWtS1Y722.jpg


atq:查看当前at任务,等于at -l

wKiom1XruqXyZpDKAABvl989XDQ118.jpg

第二行的at是crtl+d提交的结果。

如果没有指定的时间,则在规定日期的当天的,以该计划创建的时间点来执行任务。


指定时间点:

wKioL1XrvNnTPxcWAABbQajseHc104.jpg


十天之后的八点:

wKioL1XrvOTj0qVpAABc4pNx_p0736.jpg


从现在起,二十分钟后执行

wKiom1XrusqxvSUaAABc8JlgY2k210.jpg


删除某一条任务atrm 或者at -d 

wKioL1XrvP6iW4xGAAFBUcW2VaI222.jpg


普通用户也可以支持做计划任务。

如果要限制某个用户做计划任务,则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内加入需要允许的用户。


wKiom1XruuTQ-0AwAAB_q6E5TKg789.jpg

放在红框内的脚本。每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


* * * * * 表示,只要执行完了命令,立即执行

 



你可能感兴趣的:(linux,用户名,周期性)