阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

crontab用法与实例

336次阅读
没有评论

共计 2765 个字符,预计需要花费 7 分钟才能阅读完成。

导读 在 Linux 系统的实际使用中,可能会经常碰到让系统在某个特定时间执行某些任务的情况,比如定时采集服务器的状态信息、负载状况;定时执行某些任务 / 脚本来对远端进行数据采集等。这里将介绍下 crontab 的配置参数以及一些使用实例。

crontab 用法与实例

crontab 配置文件

Linux 下的任务调度分为两类:系统任务调度和用户任务调度。Linux 系统任务是由 cron (crond) 这个系统服务来控制的,这个系统服务是默认启动的。用户自己设置的计划任务则使用 crontab 命令。在 CentOS 系统中,

cat /etc/crontab

配置文件可以看到如下解释:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# 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

前四行是用来配置 crond 任务运行的环境变量,第一行 SHELL 变量指定了系统要使用哪个 shell,这里是 bash;第二行 PATH 变量指定了系统执行命令的路径;第三行 MAILTO 变量指定了 crond 的任务执行信息将通过电子邮件发送给 root 用户,如果 MAILTO 变量的值为空,则表示不发送任务执行信息给用户;第四行的 HOME 变量指定了在执行命令或者脚本时使用的主目录。

用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的 crontab 文件都被保存在 /var/spool/cron 目录中。其文件名与用户名一致。

crontab 文件含义

用户所建立的 crontab 文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:
minute hour day month week command
crontab 用法与实例

在以上各个字段中,还可以使用以下特殊字符:

“*” 代表所有的取值范围内的数字,如月份字段为 *,则表示 1 到 12 个月;

“/” 代表每一定时间间隔的意思,如分钟字段为 */10,表示每 10 分钟执行 1 次。

“-“ 代表从某个区间范围,是闭区间。如“2-5”表示“2,3,4,5”,小时字段中 0 -23/ 2 表示在 0~23 点范围内每 2 个小时执行一次。

“,” 分散的数字(不一定连续),如 1,2,3,4,7,9。

注:由于各个地方每周第一天不一样,因此 Sunday=0(第一天)或 Sunday=7(最后 1 天)。

crontab 命令详解

格式:

crontab [-u user] file
crontab [-u user] [-i] {-e | -l | -r}
  • • -u user:用于设定某个用户的 crontab 服务;
  • • file: file 为命令文件名,表示将 file 作为 crontab 的任务列表文件并载入 crontab;
  • • -e:编辑某个用户的 crontab 文件内容,如不指定用户则表示当前用户;
  • • -l:显示某个用户的 crontab 文件内容,如不指定用户则表示当前用户;
  • • -r:从 /var/spool/cron 目录中删除某个用户的 crontab 文件。
  • • -i:在删除用户的 crontab 文件时给确认提示。
crontab 注意点
  1. crontab 有 2 种编辑方式:直接编辑 /etc/crontab 文件与 crontab –e,其中 /etc/crontab 里的计划任务是系统中的计划任务,而用户的计划任务需要通过 crontab –e 来编辑;
  2. 每次编辑完某个用户的 cron 设置后,cron 自动在 /var/spool/cron 下生成一个与此用户同名的文件,此用户的 cron 信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用 crontab -e 来编辑。
  3. crontab 中的 command 尽量使用绝对路径,否则会经常因为路径错误导致任务无法执行。
  4. 新创建的 cron job 不会马上执行,至少要等 2 分钟才能执行,可从起 cron 来立即执行。
  5. % 在 crontab 文件中表示“换行”,因此假如脚本或命令含有 %, 需要使用 \% 来进行转义。
crontab 配置实例

每一分钟执行一次 command(因 cron 默认每 1 分钟扫描一次,因此全为 * 即可)

*    *    *    *    *  command

每小时的第 3 和第 15 分钟执行 command

3,15   *    *    *    *  command

每天上午 8 -11 点的第 3 和 15 分钟执行 command:

3,15  8-11  *  *  *  command

每隔 2 天的上午 8 -11 点的第 3 和 15 分钟执行 command:

3,15  8-11  */2  *   *  command

每个星期一的上午 8 点到 11 点的第 3 和第 15 分钟执行 command

3,15  8-11   *   *  1 command

每晚的 21:30 重启 smb

30  21   *   *  *  /etc/init.d/smb restart

每月 1、10、22 日的 4 : 45 重启 smb

45  4  1,10,22  *  *  /etc/init.d/smb restart

每周六、周日的 1 : 10 重启 smb

10  1  *  *  6,0  /etc/init.d/smb restart

每天 18 : 00 至 23 : 00 之间每隔 30 分钟重启 smb

0,30  18-23  *  *  *  /etc/init.d/smb restart

每一小时重启 smb

*  */1  *  *  *  /etc/init.d/smb restart

晚上 11 点到早上 7 点之间,每隔一小时重启 smb

*  23-7/1  *   *   *  /etc/init.d/smb restart

每月的 4 号与每周一到周三的 11 点重启 smb

0  11  4  *  mon-wed  /etc/init.d/smb restart

每小时执行 /etc/cron.hourly 目录内的脚本

0  1   *   *   *     root run-parts /etc/cron.hourly

本文主要讲解 crontab 如何使用和一些配置实例,下次我将给大家带来 crontab 配置生成的一些网站以及检查 crontab 配置是否符合预期的网站。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-24发表,共计2765字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7998269
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛 NAS 玩转 Frpc 并且配置,随时随地直连你的私有云 大家好,我是星哥,最近在玩飞牛 NAS。 在数...
从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统

从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统

从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统 大家好,我是星哥。公司的项目文档存了一堆 ...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...
星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛 NAS-2:飞牛配置 RAID 磁盘阵列 前言 大家好,我是星哥之前星哥写了《星哥带你玩飞牛 ...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...