马哥linux学习(linux任务计划)

linux上执行任务计划有两点:

1、  在未来时间一次执行某任务计划的命令有atbatch

2、  周期性执行某任务计划有crontab

 

邮件正文需要交互式方式接受

下面介绍下linux任务计划的命令

At命令:

承载未来时间的某作业

支持使用作业队列

默认为a队列

例如:at now+3minute //指定未来时间执行作业

提交作业使用Ctrl+d

常用选项:

-q at作业队列

-f 从指定文件中读取要运行的作业

-l 查看作业队列中的等运行作业列表;相当于使用atq命令

-c AT_JOB_NUM: 查看待运行作业的内容

-d: 删除指定作业;相当于atrm

Batch命令:

Batch命令时间是由系统自行选择在资源较为空闲时运行的任务,其余参数和at命令基本相同。

Crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs

周期性任务计划

守护进程:crond

周期性计划有两类:

1、  系统cron任务,没有默认运行用户身份,所有需要额外指定运行者

第一类我们使用vim编辑就可以

# Exampleof job definition:

#.---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  | .---------- day of month (1 - 31)

# |  | |  .------- month (1 - 12) ORjan,feb,mar,apr ...

# |  | |  |  .---- day of week (0 - 6) (Sunday=0 or 7) ORsun,mon,tue,wed,thu,fri,sat

# |  | |  |  |

# *  *  * *  * user-name  command to be executed

系统任务由7个字段组成,前5个字段是时间点

user-name: 以哪个用户的身份运行任务

command to be executed: 要运行任务                    

2、  用户cron任务,由某用户所提交,默认就以提交者的身份运行,所以无需额外指定

运行者

第二类不建议使用wim命令执行,建议使用crontab执行

                   用户任务由6个字段组成

                   5个时间点:

                   分钟:有效取值范围0-59

                   小时:0-23

                   日:1-31

                   月:1-12

                   周几:0-7

                  

                   注意:几月几号周几,不建议同事间使用

                  

         例如:

6 * * * *

 

 

时间表示法:

 

*: 对应时间点有效取值范围内的每个时间点;

-: 一个特定连续时间范围, 3-7

,:一个离散的时间点, 3,5,7

/#:有效时间范围内的每多少时间;用于指定频率;

1-30/4, */4

 

5 */3 * * * /bin/echo "howdy"

5 7 * * 1-5 /bin/echo "howdy"

crontab命令:

crontab [-u user] [-l | -r | -e]

-u user: 不是管理自己的cron任务,而是指定的目标用户的cron任务;仅root拥有管理其它用户的cron任务的权限;默认管理自己的;

-l: list,列出任务;

-r: remove, 移除所有任务;

-e: edit,编辑,打开一当前shell会话的默认编辑器来编辑cron任务表

题:每周一到周六的凌晨320分,运行cp命令对/etc/目录进行归档另存,存储位置为/backups/etc-YYYY-MM-DD

[root@localhost ~]# crontab -l
20 3 * * 1-6 /bin/cp /etc -rpf/backups/etc-'file\%Y-\%M-\%D'

题:每周日凌晨230分,运行cp命令对/etc/fstab文件进行备份,存储位置为/backup/fstab-YYYY-MM-DD-hh-mm-ss

[root@localhost ~]# crontab -l
30 2 * * 7 /bin/cp /etc/fstab /backup/fstab-'file\%Y-\%M-\%D-\%H-\%M-\%S’

: 每天晚上12点,取得/proc/meminfo文件中所有以SM开头的行,追加至/statistics/meminfo.txt文件中,且每天的消息之前,要加上类似===============分隔线

[root@localhost /]# crontab -l
00 0 * * *     echo "=========================">> /proc/meminfo | egrep "^S|^M" /proc/meminfo >>/statistics/meminfo.txt


你可能感兴趣的:(linux,计划,后台运行,周期性,守护)