Linux系统任务计划(at、crontab)的使用方法

Linux上的任务计划:

任务计划:

在未来时间点一次性执行某任务:at, batch

周期性执行某任务:crontab

电子邮件服务:

smtp:simple mail transmission protocol

/var/spool/mail/USERNAME  邮件目录

pop3:post office protocol   pop弹出 ,从服务器上下载邮件

imap4:internet mail access protocol  类似POP3,功能更强

MUA:mail命令

mail命令:

mail:进入交互式收发邮件接口

发送邮件,手动输入邮件内容

mail-s ‘SUBJECT‘ [email protected]

管道的方式附上邮件的内容

mail-s ‘SUBJECT‘ [email protected] < /PATH/FROM/SOMEFILE

命令执行结果作为邮件内容

COMMAND| mail -s ‘SUBJECT‘ [email protected]

at命令:

承载未来时间运行的某作业:

支持使用作业队列:

默认为a队列;

Ctrl+d  结束命令的输入

at[option]... TIME

TIME:

(1)绝对时间

HH:MM,

MMDD[CC]YY,MM/DD/[CC]YY, DD.MM.[CC]YY or [CC]YY-MM-DD

tomorrow

(2)相对时间

now+#UNIT

minute,hour, day, week

(3)模糊时间

midnight

noon

teatime

常用选项:

-qQUEUE: at作业队列;

-f/PATH/FROM/SOMEFILE:从指定的文件中读取要运行的作业;

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

-cAT_JOB_NUM: 查看待运行作业的内容;

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

batch:

与at不同的是batch无法指定时间,由系统自行选择在资源较为空闲时运行指定的任务;

crontab:周期性任务计划

守护进程:crond

周期性任务有两类:

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

/etc/crontab

vim命令

#Example of 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:以哪个用户的身份运行任务

commandto be executed: 要运行任务

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

/var/spool/cron/USERNAME

鉴于crontab文件中的任务的保密性,比如管理给用户指定的任务,不建议直接使用VIM编辑crontab文件来编辑任务,建议使用crontab命令来管理任务

vim命令;不建议

crontab命令:建议

#Example of 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

#|  | |  |  |

#*  * *  *  * command to be executed

5个时间点:

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

小时:0-23

日:1-31

月:1-12

周几:0-7

注意:几月几号与周几,不建议同时使用;

例如:

6* * * *  表示每小时的第6分钟执行一次

时间表示法:

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

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

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

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

1-30/4,*/4

5*/3 * * * /bin/echo "howdy"  每隔3个小时的第6分钟执行一次

57 * * 1-5 /bin/echo "howdy"   每周一到周五的7点5分执行

crontab命令:

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

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

-l:list,列出任务;

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

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

思考:

1、如果想实现每8分钟运行一次某任务?

*/8 * * * *

2、如果想实现每10秒钟运行一次某任务?

* * * * * for i in {0..4}; do /bin/echo “hello!”; sleep 10 ; done

补充性的工具:anacron:

注意:

(1)如果不想接收任务执行结果的通知邮件:

COMMAND> /dev/null

COMMAND&> /dev/null

(2)对于crontab文件来讲,%有特殊功用;如果命令中会出现%, 要记得转义,或者用单引号对其引用;

(3)crontab的PATH变量与用户的变量不完全相同,所以,建议在cron中的任务要使用绝对路径

/root/bin/a.sh

1、每周一到周六的凌晨3点20分,运行cp命令对/etc/目录进行归档另存,存储位置为/backups/etc-YYYY-MM-DD;

203 * * 1-6 /bin/cp –a /etc /backups/etc-`date +\%F`

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

302 * * 7 /bin/cp  /etc/fstab/backup/fstab-`date +’%F-%H-%M-%S’`

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

0 0 * * * /bin/echo ===== >> /tmp/meminfo.txt ; /bin/egrep "^[S|M]"/proc/meminfo >> /tmp/meminfo.txt

时间: 2024-10-11 11:15:14

Linux系统任务计划(at、crontab)的使用方法的相关文章

三十四、Linux系统任务计划cron、chkconfig工具、systemd管理服务、unit介绍

三十四.Linux系统任务计划cron.chkconfig工具.systemd管理服务.unit介绍.target介绍 一.Linux系统任务计划cron crontab命令:对任务计划功能的操作用此命令.选项: -u:指定某个用户,不加-u则为当前用户. -e:制定任务计划. -l:列出任务计划. -r:删除任务计划. 任务计划的配置文件:/etc/crontab 文件内共有五个字段. 从左往右依次为:分.时.日.月.周.用户.命令. 可以不指定用户就是root. # crontab -e  

linux 任务计划,crontab、at 、anacron

有时候需要对系统进行一些重比较耗时占资源的系统维护工作,或一些重复的操作如每日备份等.最好的方法是把这些任务安排在深夜系统负载最小的时候.linux系统上常使用crontab.at 命令来实施计划任务.计划任务分为一次性计划任务,和周期性计划任务. 一次性计划任务:任务只执行一次后不会再进行第二次 可以使用的命令:at.bath 周期性任务执行:重复执行相同的任务,直到用户删除此任务. 可以使用的命令:crontab.anacron at命令: 交互式:让用户在at > 提示符输入多个要执行的命

Linux 任务计划:crontab

(1) 什么是任务计划:也就是设置服务器在某个指定的时间执行某个指定的任务,比如执行一个命令,或执行一个脚本(2) Linux 使用 cron 服务来制定任务计划,cron 是服务名称,crond 是后台进程,crontab 是定制好的计划任务表(3) cron 有两个配置文件,一个是全局配置文件(/etc/crontab),是针对系统任务的:一个是 crontab 命令生成的配置文件(/var/spool/cron/username),是针对某个用户的定时任务 # Example of job

Linux任务计划 (at,crontab)

Linux中的任务计划,定时执行某些任务或周期性的执行某些任务 任务计划: 在未来时间点一次性执行某任务:at, batch 周期性执行某任务: crontab 执行完任务后,liunx会通过邮件来告当前用户 电子邮件服务:smtp: simple mail transmission protocol linux中的路径:/var/spool/mail/USERNAME 查看邮件命令:yum install mailx 安装邮件服务 mail命令: mail: 进入交互式收发邮件接口: mail

Linux系统任务计划和系统服务管理

一.Linux系统的任务计划 crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务.关于cron任务计划功能的操作都是通过crontab这个命令来完成的.常用的选项有: -u :指定某个用户,不加-u选项则为当前用户:-e :制定计划任务:-l :列出计划任务:-r :删除计划任务. 实例:1.

Linux的计划任务--crontab

1. crontab命令选项 -u                指定一个用户             -l                 列出某个用户的任务计划             -r                 删除某个用户的任务             -e                编辑某个用户的任务 2.crontab的常用语法格式 0 2 * * *  /bin/bash  /home/test/test.sh  >> /dev/null 2>&1 M

linux的计划任务crontab

crontab(全称cron table计划任务列表)是一个用于周期性被执行的任的工具. 相关指令: usage: crontab [-u user] file   crontab [ -u user ] [ -i ] { -e | -l | -r }    #可以指定编辑哪个用户的crontab,不指定则默认当前用户 crontab -e    (edit user's crontab)   crontab -l    (list user's crontab)   crontab -r  

Linux centos7 linux任务计划cron、chkconfig工具、systemd管理服务、unit介绍、 target介绍

一.linux任务计划cron crontab -u  -e -l -r 格式;分 时 日 月 周 user command 文件/var/spool/corn/username 分范围0-59,时范围0-23,日范围0-31,月范围0-12,周1-6 可用格式1-5表示一个范围1到5 可用格式1,2,3表示1或2或3 可用格式*/2表示被2整除的数字,比如小时,那就是每隔2小时 启动 systemctl etop crond停止 systemctl start crond.service  二

Linux任务调度进程crontab的使用方法和注意事项

参考文章:Linux任务调度进程crond命令的使用方法和注意事项 一.crond简介 概念 crond的概念和crontab是不可分割的.crontab是一个命令,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行.该词来源于希腊语 chronos(χρ?νο?),原意是时间.而crond正是它的守护进程. crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,