0
点赞
收藏
分享

微信扫一扫

Linux定时 (计划) 任务

you的日常 2022-05-05 阅读 62

目录

定时任务

定时(计划)任务:未来的某个时点执行一次任务或者是周期性的运行某个任务,任务执行结束后,会通过邮件方式通知用户

分类:

​ 定点执行一次某任务:at,batch

​ 周期性的运行某任务:crontab

用户及系统定时任务

crond进程定期(每分钟)检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。用户在cron表(也被称为crontab文件)指定了定时任务,crontab也就是我们常见的定时任务设置命令。Linux下的任务调度分为
两类,系统任务调度和用户任务调度。
系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。/etc/crontab文件就是系统任务调度的配置文件。
用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定
制自己的计划任务。所有用户定义的crontab文件都被保存在Nar/spool/cron目录中。

用户
​ /var/spool/cron/:用户级任务

​ 系统

​ /etc/crontab:系统计划任务的配置文件

​ crond:进程(守护进程,一直存在)

​ centos6:scrvice crond status(查看状态)

​ centos7:systemctl status crond(查看状态)

​ 每分钟检查是否有要执行的任务,如果有,则自动执行该任务

mail命令

[root@localhost tmp]# yum install mailx -y    安装mail命令

​ mail -s 主题 收件人地址 Ctrl+d结束

​ mail -s 主题 收件人地址 < mailfile

​ echo “文件内容” | mail -s 主题 收件人地址

at命令

[root@localhost tmp]# yum install at -y    安装at命令

HH:MM 10:00

midnight noon teatime

12pm 10am

10:00 2022-4-18

now + 5 minutes

10am | 3 days

today tomorrow

​ 启动atd:systemctl start atd

atq 查看待处理的任务

atrm 任务序号,删除任务

crond命令

# Example of job definition:

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

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

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

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

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

# |  |  |  |  |

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

时间表示**(分 时 日 月 周)

**

minute 0-59

hour 0-23

day 1-31

mouth 1-12 (也可用英文表示jan)

week 0-6 1-7 (也可用英文表示sun)

1、特定值

2、* 代表 每…(每小时,每月…)

3、离散值 #,#,#,#

4、连续的值 #-#

5、指定步长 /#每隔#(要能整除)

eg:每年的4月17日下午4点01分执行echo 111

​ 1 16 17 4 * echo 111

示例1、每月1号4点重启网络服务 0 4 1 * *

示例2、每隔1小时,重启网络服务 * */1 * * *

示例3、每天晚上10点打包压缩/etc/目录 0 10 * * *

示例4、每周一的9点到17点的第15分钟和45分钟输出hello world 15,45 9-17 * * 1

示例5、每分钟执行一次 */15 * * * *

示例6、每周1到周五的9点到17点整点重启网络服务 0 9-17 * * mon-fir

示例7、每隔三天的早上8点整执行重启网络服务 0 8 */3 * *

crontab

​ -e:编辑任务

​ -l:列出所有任务

​ -r:移除所有任务

​ -i:交互 与-r搭配使用 移除时有提示

​ -u:指定用户执行

​ commond > /dev/null

​ commond &> /dev/null

​ 如果commond带有%,需要对其进行转义

​ commond使用脚本代替

定时任务的制定规范

1、定时任务执行的脚本,应当存放在指定位置,便于维护和定期备份

2、添加定时任务前应当做好备注

3、执行脚本前,加上/bin/bash /bin/sh,脚本应该指定绝对路径

4、定时任务书写时需要尽量避免标准输出和标准错误输出 结尾加上 &>/dev/null 2>&1

5、能用简单命令完成的也要写在脚本里

6、指定用户执行定时任务

举报

相关推荐

0 条评论