Shell命令进阶

Crontab命令(周期性计划任务)

用于创建、修改、删除和查看定时计划任务

功能:可以在固定的间隔时间执行指定的系统指令或 shell script脚本。
时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合;适合周期性的日志分析或数据备份等工作。
选项 说明
-u 查看指定用户的定时计划任务
-e 创建或修改当前用户的定时计划任务
-l 列出当前用户的所有定时计划任务
-r 将没有确定信息的完全移除当前用户的定时计划任务
-i 与-r结合使用可以在删除用户的crontab文件时给确认提示
计划任务文件格式:

用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共 分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:
* * * * * command path

字段名称 说明
分钟 从0到59之间的任何整数
小时 从0到23之间的任何整数
日期 从1到31之间的任何整数
月份 从1到12之间的任何整数
星期 从0到7之间的任何整数,这里的0或7代表星期日

除了上述字段还有:

特殊字符
* 匹配任意可能值
- 定义一个范围
/ 表示每间隔多少时间
, 表示“或”的含义

At命令(一次性任务)

一次性定时计划任务,执行完就不在执行此任务。
语法:at [-f file] [ -q queue] [OPTION] TIME [DATE]
Ctrl + D 结束at命令时输入

OPTION 说明
-f 可以从指定的文件中读取命令内容,然后在指定时间运行
-l 列出当前用户(非root)所有使用at命令创建的还未运行或当前正在运行的任务,若是root用户,则列出所有用户的任务
时间定义

● 能够接受在当天的hh:mm(小时:分钟)式的时间指定;假如该时间已过去,那么就放在第二天执行。 例如:04:00
● 能够使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的词语来指定时间。
● 能够采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。 例如:12pm
● 能够指定命令执行的具体日期,指定格式为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。 例如:04:00 2009-03-1
● 能够使用相对计时法。指定格式为:now + count time-units ,now就是当前时间,time-units是时间单位,这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是时间的数量,几天,几小时。 例如:now + 5 minutes 04pm + 3 days
● 能够直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。

其他相关命令
命令 说明
atq 与“at -l”功能相同
atrm 可以删除现有任务,参数是任务编号
batch 在系统负荷允许的情况下执行at任务,就是在系统空闲。的情况下才执行at任务

Guess you like

Origin blog.csdn.net/weixin_46329906/article/details/116797776