美文网首页转载部分
Linux常用命令之--计划任务(at,crond)及tmpwa

Linux常用命令之--计划任务(at,crond)及tmpwa

作者: 逗儿比的日常 | 来源:发表于2020-12-23 12:08 被阅读0次

    概念

    计划在某一个特定的时间做某一个特定的事儿。比如需要备份数据库的时候是需要锁死服务器的,这样才能进行备份

    计划任务的分类

    Linux系统支持一些能够自动执行任务的服务我们称其为计划任务,在Linux系统中常用的计划任务有:
    • at:指定一个时间执行一次任务
    • cron:根据一个时间表自动周期的执行任务

    at计划任务的描述

    at是一种system V服务,只有在该服务启动后才可以制定计划任务,但该任务只能够执行一次
    针对不同的用户,系统中也存在作不同权限的计划任务

    at计划任务的管理

    at管理指令如下:
    at:安排一个延时任务
    语法:at <时间描述>
    例:
    at 6pm Monday
    at now + 5 minutes
    at 13:15 05/12/2010

    at>任务描述
    at><ctrl+d>
    

    atq:查询当前用户正在等待的计划任务。可以看见计划任务号
    在计划任务实行结束以后再atq就看不到了
    • atrm:删除一个正在等待的计划任务
    atrm <任务号>

    例:
    systemctl status atd 先看atd.service服务的状态是否是active running的状态
    如果不是这个状态是无法做这个计划任务的

    at now + 2 minutes

    at> ←自动出现的
    at> touch /root/test1.at         #写上任务
    #点击Ctrl+d就退出了编写的任务
    

    等到两分钟以后就可以查看是否完成了任务

    at的使用控制

    • at基于用户的使用控制文件
    • /etc/at.allow
    允许哪些用户可以使用at计划任务
    • /etc/at.deny
    拒绝哪些用户使用at计划任务,文件里写哪个用户名代表哪个用户不能使用at计划任务
    在配置文件中每一个用户名独占一行
    ※如果一个用户既在allow里又在deny里那么这个用户是被allow的

    root用户是所有人的任务都能看见,但是其他用户只能看见自己的
    job ID是一直向上涨的且不重复的。而且是所有用户的号大家是一起的,不是自己起自己的
    atq 可以查看任务号以及执行的时间。通过任务号,at -c <任务号>可以看具体任务

    cron计划任务的描述

    cron计划任务允许用户根据“时间表”自动周期的完成任务某些任务。是一种system V服务,需要开启该服务(systemctl status crond)才能使用

    cron计划任务的管理

    crontab制定管理计划任务时间表
    • crontab –e:编辑当前用户的计划任务时间表
    • crontab –l:列出当前的计划任务时间表
    • crontab –r:删除当前的计划任务时间表
    • crontab -u username <-e | -l | -r> :以某一个用户的身份管理,要考虑这个用户有没有权限做这个任务
    • man 5 crontab:查看crontab帮助信息
    • 时间表配置文件的格式:
    * * * * * 指令
    每分钟 每小时 每天 每月 每周星期几 任务描述
    • 用户时间表文件为:/var/spool/cron/username

    crontab任务配置的格式

    时间数值的特殊表示方法
    • * 表示该范围内的任意时间
    • , 表示间隔的多个不连续时间点
    • - 表示一个连续的时间范围
    • / 指定间隔的时间频率
    • 应用示例(24小时制,所以没有AM,PM)
    0 17 * * 1-5 :周一到周五每天17:00
    30 8 * * 1,3,5 :每周一、三、五的8点30分
    0 8-18/2 * * * :8点到18点之间每隔2小时
    (8,10,12,14,16,18点都会各执行一次)
    0 * */3 * * 每隔3天

    例:
    crontab -e 在文件里写↓

    32-50/2 * * * * echo 1 >> /root/test
    

    tmpwatch指令

    这是不可逆的操作
    • 为指定目录清理古旧文件
    • 有效应用于防止/tmp目录被填满
    • tmpwatch每天在/etc/cron.daily中运行
    • 语法:
    /usr/bin/tmpwatch 小时数 指定目录

    例:清理tmp文件夹里超过一天(24小时)没有用过的文件
    cd到tmp文件夹中
    tmpwatch 24 /tmp/

    相关文章

      网友评论

        本文标题:Linux常用命令之--计划任务(at,crond)及tmpwa

        本文链接:https://www.haomeiwen.com/subject/bbxdnktx.html