Linux- 计划任务——at/crontab

1  一次性计划任务

at  对应的守护进程atd,在用at前应确保其进程正常运行。

1)查看atd的运行状态

    systemctl   status    atd

    systemctl   status    -l    atd    //查看详细状态

2)进程状态

查看进程状态:  systemctl   status   进程名    

或者  systemctl   status   -l   进程名

启动一个进程:  systemctl   start      进程名
重启一个进程:  systemctl   restart    进程名
关闭一个进程:  systemctl   stop       进程名
使一个进程开机自动启动: systemctl   enable    进程名
禁止一个进程开机自启:   systemctl   disable   进程名
删除进程对应的服务文件: systemctl   mask      进程名
恢复进程对应的服务文件: systemctl   unmask    进程名
重新加载服务启动的文件: systemctl   daemon-reload    进程名

注意:服务的启动文件位置  /usr/lib/systemd/system/

3)哪些用户可以使用at

/etc/有两个文件可以控制哪些用户可以使用at计划任务,/etc/at.allow记载哪些用户可以使用,/etc/at.deny中记载哪些用户不可以使用。如果两个文件都存在,那么以/etc/at.allow的为准;如果只有/etc/at.allow,那么里面记载的用户可以用,没记载的就不可以用;对于/etc/at.deny,以此类推。但是root用户任何时候都可以使用。

echo  用户名  >  /etc/at.deny   //这样用户就不能用at了

4)at 命令格式:  at    时间和日期

at >在此输入需要执行的命令或脚本        

at > Ctrl+d       //退出at命令行

注:

i) 时间在前,日期在后;只输入时间没有日期会认为是今天的某个时刻;只有日期没有时间,还会认为是日期输入的时刻。

//at  23:00     at  12/31/13      at  23:00  12/31/13

ii)特殊时刻: now 现在     noon 中午     teatime 下午4点  

十二小时制 am  pm       +  n  (minutes  hours  days  weeks)并且,+号和后面的数字间有空格,数字和后面的时间单位间有空格

// at  now     at  0:00pm  12/31/13     at  teatime  +  30 minutes

iii)建议写需要执行的命令的绝对路径;需要执行的脚本必须具有执行权限。

编辑脚本文件:  vim  /root/1.sh

#!/bin/bash

/usr/bin/touch   /root/f3

编辑完成后为脚本添加执行权限:

chmod  a+x  /root/1.sh            at  now  +  1  minutes

at >  /root/1.sh                  at >  Ctrl+d

例:i)计划时间到时自动创建f1        // at   时分  月/日/年

    at  09:39  12/11/17      at > /usr/bin/touch  /root/f1     at >  Ctrl + d

   ii)at now  + 1 minutes   at > /usr/bin/touch  /root/f2     at >  Ctrl+d

5)at 任务管理

查看当前系统内有哪些at计划任务:  atq
查看某一计划任务的详细信息:      at   -c   任务编号
删除一个at任务:                 atrm      任务编号

2 周期性计划任务

1) cron  在使用之前先要确保cron的守护进程处于运行状态

systemctl   status   crond   //查看状态

2)哪些用户可以使用cron

/etc/有两个文件可以控制哪些用户可以使用cron计划任务,/etc/cron.allow记载哪些用户可以使用,/etc/cron.deny中记载哪些用户不可以使用。如果两个文件都存在,那么以/etc/cron.allow的为准;如果只有/etc/cron.allow,那么里面记载的用户可以用,没记载的就不可以用;对于/etc/cron.deny,以此类推。但是root用户任何时候都可以使用。

3)cron计划任务格式:

编写一个新的 cron计划任务:  crontab  -e

格式:第一行 SHELL=/bin/bash    //下文的命令使用哪个shell环境执行

          第二行 MAILTO=root      //如果出现问题,发送邮件给root

          第三行 分     时        日(每月中的第几天)  月    星期     命令或脚本

                   0-59   0-23    1-31                            1-12   0-7

               //  *为 每一       连续时间 1-3,5-9        间隔时间 */5

注:命令最好写绝对路径,脚本必须有执行权限

例如:

第一步  编辑脚本巡检文件vim  /root/cpu.sh ,内容如下:

#!/bin/bash

date  >> /root/cpu.txt                   //用重定向也行

ps  aus | sed  1d | sort  -rn  -k3 | head  -n5  >> /root/cpu.txt

(这行是空格行,用来分隔文段,与下面的echo的#作用一样)

echo “###############################” >> /root/cpu.txt

第二步  为脚本增加执行权限:chmod   a+x  /root/cpu.sh

第三步  创建cron计划任务  crontab   -e ,内容如下:

       SHELL=/bin/bash

       MAILTO=root

       00    8    *     *    1-5    /root/cpu.sh

//每周一到周五,上午八点自动执行/root/cpu.sh脚本

例1:SHELL=/bin/bash

         MAILTO=root

         */1    *    *     *    1-5    /root/cpu.sh          //每1分钟执行一次

4) cron 计划任务管理

    查看当前系统的cron计划任务:  crontab   -l  
    查看指定用户创建的计划任务:  crontab   -l  -u   用户名
    创建cron任务:               crontab   -e
    以指定用户身份创建计划任务:  crontab   -e  -u    用户名
    删除cron任务,使用cron  -e 进入crontab编辑的文件,删除需要删除的条目后保存退出
    清空cron任务:           crontab   –r
    清空指定用户的cron任务:  crontab  -r  -u   用户名

转载请注明出处,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鬼刺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值