定时任务

来源:互联网 发布:matlab 两个矩阵拼接 编辑:程序博客网 时间:2024/06/02 07:29

Linux定时任务

Linux系统的定时任务用于在系统中定时的执行一些命令或脚本。一般常用的是at,crontab

延时命令at

at命令是系统延时任务发起的工具,是一次性的。

at now+时间
//在一定时间后要执行的动作(回车后显示如下结果)
at>
//在此后输入要执行的命令

可以有多条命令,按Ctrl+D结束输入。

如果执行的命令具有输出结果到屏幕的功能(例如:echo),则到时后结果会以邮件形式发送到当前用户。

at now+5min        //在5分钟后执行什么动作(min:分钟 hour:小时 day:天)    at> reboot        //执行重启at 905        //在9:05执行什么动作at -l            //查看系统中存在的延迟任务        1    Mon Aug  3 13:50:00 2015 a root  任务id   执行的时间                执行者atrm +id    //撤销此任务的执行at  4pm+3days    //在3天后4pm执行at 10am Jul 31       //在10am Jul 31执行at 1am tomorrow        //在明天1am执行

at命令的格式总结: at 小时:分钟 YY-MM-DD(具体到时间的话是发起命令的时间)
at命令执行后不可更改,只能删除。

at用户限制

/etc/at.deny 用户黑名单
/etc/at.allow 用户白名单(这个默认不存在,需要的话自行创建)
用户黑名单:禁止使用at的名单
用户白名单:允许使用at的名单

当/etc/at.allow出现时/etc/at.deny自动失效

定时任务crontab

crontab命令是定期任务,是周期性执行的,是重复的。

用法:crontab -e
发起定时任务,进入vi编辑界面,在此写入时间及命令。

标准格式:* * * * * cammand/脚本
格式:分 时 日 月 周 命令(最好绝对路径)

0 10 * * * /bin/touch /file    ///在每一天的10:00都执行touch /file

符号含义:

   *   任何时间   ,  不连续时间   -   时间范围   */n 隔多久执行

时间表示方式:
*/num 每隔。。。
num1-num2 在num1-num2之间的时间
num1,num2 在num1,num2这两个时间点
num1-num2/num3 在num1-num2之间每隔num3

    * * 1 1 1       1月1号和一月的每个周一    * * * * * *     每分钟    0 * * * *       每小时    0 0 * * *       每天    0 0 1 * *       每月1号    05 * * * *      每小时整点过5分    05 02 * * *     每天的2:05am    30 08 01 * *    每月1号早上8:30    00 07 25 12 *   12月25日7:00am    30 16 * * 5     每个周五的4:30pm    */5 * * * *     每隔5分钟    0 0 1 jan 0     1月1日午夜和每周日    */10 9-17 1,15 * *   在每月1号和15号9:am-5:00pm间每隔10分钟

分钟:0-59 小时:0-23 日:1-31 月:1-12(可以用名称) 周0-7(0和7都表示周日,可以用名称)

注意:在定时任务中,%有自己的含义,所以在定时任务中调用脚本时,%前要加转义符\

crontab -l        //显示当前用户的定期任务列表crontab -r       //删除当前用户的定期任务crontab -u 用户名    //以该身份执行定期任务操作

crontab任务的记录文件 /var/spool/cron/[username]
每当有一个用户创建crontab任务,就会在/var/spool/cron中创建一个以该用户为名的文件,其中的内容就是任务的内容。

当删除crontab任务后,对应在/var/spool/cron中以该用户为名的文件也会被删除。

每个用户只能建立一个/var/spool/cron/[username]文件,但可以在文件中加入多个定时任务。

crontab的用户限制:
如果太多用户可以被允许使用crontab命令的话,系统负载会过大,需要进行限制

/etc/cron.deny 用户黑名单
/etc/cron.allow 用户白名单(这个默认不存在,需要的话自行创建)

用户黑名单:禁止使用crontab的名单
用户白名单:允许使用crontab的名单

当/etc/cron.allow出现时/etc/cron.deny自动失效

0 0
原创粉丝点击