首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux_学习之计划任务crontab

在日常工作中,总有一些工作是常规的,固定时段要做的,而每天在固定时间重复做着相同的事,肯定不是一个炫酷的运维者想要的,因此linux的计划任务就上场了——crontab。

定时任务执行一次即停止at

定义:仅仅执行一次任务

命令使用权限管控:/etc/at.deny  (写入其中的每一行用户,都不能执行at指令,其他都可以)

关联服务:atd    /etc/init.d/atd

命令语法:

at 【-mldv】 TIME

-m不论计划执行成功否,向root发送mail执行完成消息

-l  列出当前用户的at计划任务

-d  删除任务计划

-v  以时间格式列出任务计划表

-c  任务号(查看任务如何执行的脚步)

时间格式说明:

HH:MM

HH:MM YYYY-MM-DD

HH:MM am|pm

HH:MM am|pm  +number minutes/hours/days/weeks

示例:

now+5minutes

am+3weeks

# 今晚23点重启主机

$at23:002021-03-01

at>sync&sync

at>shutdown-hnow

ctrl+d结束

# 注

在系统空闲(cpu负载率0.8%)时执行计划任务:(batch命令用法和at一样)

定时任务循环执行

定义:执行循环计划任务

配置文件:/etc/crontab

关联服务:crond

任务记录:/var/spool/cron/*

命令语法:

crontab 【-u username】【-erl】

•   -u仅root为其他用户设置任务时使用,其他都是用户本身设置计划任务

•   -e开始编辑计划任务

•   -r  删除全部计划任务,如需删除单条计划,需到/etc/inittab中删除“nd”

•   -l  列出所有计划任务

#如:每周2晚上22点执行清除日志目录

$crontab-e

22* *2/usr/bin/rm-rf/var/log/*

# 命令格式说明

分(0-59) 时(0-23) 日(1-31) 月(1-12) 周(0-6) 命令**

*       任意时刻

,         分隔   eg:3,5,6

-        连续的一段时间

/number   每隔n执行一次

注:周日标识0,周一标识1

注:命令尽量用绝对路径,通过which 命令得到

文件中添加方式:

vim/etc/inittab

命令形式执行方式:

crontab-e

目录执行方式:

# 将多个计划写成脚本放入一个目录eg:mkdir runcron

通过脚本 run-parts联动 执行

* /5 * * * root run-parts /test/runcron

如计划任务未执行就关机了,该怎么办?

anacron可以做到,下次开机后通过检查/var/spool/anacron/*定义的各任务时间戳,没有的将执行

•  配置文件:/etc/anacrontab

•  命令使用:anacron-sfnJob

•       -s开始执行,比对时间记录文件(/var/spool/anacron/*),crontab没有执行的就执行,有延迟

•       -f不比对直接执行计划

•       -n立刻执行,不延迟    

•      job 为/etc/anacrontab定义的计划名

/etc/anacrontab

1 5cron.daily run-parts /etc/cron.daily

天数 延迟分钟 计划名   脚本   计划任务脚本目录位置

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210302A005N700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券