Linux任务计划

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux任务计划相关的知识,希望对你有一定的参考价值。

at任务

单次定时执行任务

at命令:at [option] TIME

u 常用选项:

-V 显示版本信息:

-l: 列出指定队列中等待运行的作业;相当于atq

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

-c: 查看具体作业任务

-f /path/from/somefile:从指定的文件中读取任务

-m:当任务被完成之后,将给用户发送邮件,即使没有标准输出

u 注意:作业执行命令的结果中的标准输出和错误以邮件通知给相关用户

u TIME:定义出什么时候进行 at 这项任务的时间

HH:MM [YYYY-mm-dd]

noon, midnight, teatime4pm

tomorrow

now+#{minutes,hours,days, OR weeks}

u执行方式:

1)交互式 2)输入重定向 3at –f 文件

uat队列存放在/var/spool/at目录中

u/etc/at.{allow,deny}控制用户是否能执行at任务

白名单:/etc/at.allow 默认不存在,只有该文件中的用户才能执行at命令

黑名单:/etc/at.deny 默认存在,拒绝该文件中用户执行at命令,而没有在

at.deny 文件中的使用者则可执行

如果两个文件都不存在,只有 root 可以执行 at 命令

 

技术分享图片

 

 

周期性计划任务cron

 

命令及程序包

技术分享图片

 

确保服务运行:

CentOS 7: systemctl status crond

CentOS 6: service crond status

技术分享图片

 

系统cron任务:系统维护作业

/etc/crontab文件中设置

技术分享图片

其中本身带有配置信息的使用规则:

第一位*代表每分钟,可取值0-59,例如取值5则表示每小时的05分开始执行

第二位*代表每小时,可取值0-23,例如取值1则表示每天的1点(AM

第三位*代表每月的哪一号,可取值1-31

第四位*代表一年的哪一月份,可取值1-12

第五位*代表星期几,可取值(0-6)星期天是0

如果所在位数是*则代表,每xx时间执行,所有都是*则代表每分钟执行

 

例如,

下图第一个任务表示 65145分已root身份运行free -m >>  /data/memstat.log

第二个任务表示每个星期二的145分已root身份运行free -m >>  /data/memstat.log

技术分享图片

 

用户cron任务:

因为这里是root执行crontab -e所以这里表示root用户每10分钟执行一次后面的任务

ucrontab命令定义

每个用户都有专用的cron任务文件: /var/spool/cron/USERNAME

ucrontab命令: crontab [-u user] [-l | -r | -e] [-i] -l: 列出所有任务 -e: 编辑任务 -r: 移除所有任务 -i:同-r一同使用,以交互式模式移除指定任务 -u user: root可运行,指定用户管理cron任务

u控制用户执行计划任务: /etc/cron.{allow,deny}

crontab -e 命令

技术分享图片

 


at

crontab


一次性作业使用

重复性作业使用crontab Create

Create

at time

crontab   -e

List

at -l

crontab   -l

Details

at -c jobnum

N/A

Remove

at -d jobnum

crontab   -r

Edit

N/A

crontab   -e

没有被重定向的输出会被邮寄给用户

根用户能够修改其它用户的作业

 

crontab的日志信息:/var/log/cron*

 


以上是关于Linux任务计划的主要内容,如果未能解决你的问题,请参考以下文章

linux-计划任务atcrontab

linux计划任务执行脚本显示乱码

Linux系统计划任务管理

linux脚本放到计划任务里面执行结果与手动运行不一致

Linux中滴计划任务

Linux计划任务