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

概念

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

计划任务的分类

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>

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)及tmpwatch)