通过 cron 设置定时任务
本文最后更新于 1724 天前,如遇到任何问题欢迎在评论区留言呀!

说明

关于操作系统及参数

VPS 的系统是 Debian9

crontab 的存储路径为/var/spool/cron/crontabs

概念讲解

cron 是一个守护进程(伴随着电脑一起运行的程序),通过读取配置文件 crontab(cron table)来定时执行 crontab 这个文件中的命令。补充一点,每个用户都可以拥有一个自己的 crontab 文件。

简单来说,cron 负责干活,crontab 负责告诉 cron 怎么干,所以我们要做的就是把我们想要定时执行的命令写入 crontab 中。

安装 cron 及开机自启

大多数系统均预装 cron,如果没有的话自己装

$ apt install cron

设置开机自启

$ systemctl enable cron # 设置 cron 开机自启

如果出现

Synchronizing state of cron.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable cron

执行

$ /lib/systemd/systemd-sysv-install enable cron

crontab 命令配置 crontab 文件

$ crontab [-u user] [file address] [ -e | -l | -r ]

其中 [-e | -l | -r] 是对 crontab 配置文件层面的操作

  1. [-u user] 指定某个用户的 crontab 文件,默认为当前用户
  2. [file address] 从指定位置读取配置信息到crontabs中(只有创建或更新 crontab 的时候会用到这个参数)
  3. [-e] 编辑某个用户的 crontab 文件(默认当前用户)
  4. [-l] 列出某个用户的 crontab 文件中的定时任务(默认当前用户)
  5. [-r] 删除某个用户的 crontab 文件(默认当前用户)

crontab 怎么写

每一个定时任务在 crontab 中是一行,比如

0 0 1,2,19,20 * * /usr/bin/cerbot renew

表示每个月的 1,2,19,20 号的 0 点 0 分执行/usr/bin/cerbot renew,具体内容接下来展开说:

# ┌──── minute (0 - 59)
# │ ┌──── hour (0 - 23)
# │ │ ┌─── day of the month (1 - 31)
# │ │ │ ┌──── month (1 - 12)
# │ │ │ │ ┌──── day of the week (0 - 6)
# │ │ │ │ │                               
# │ │ │ │ │
# * * * * * command to execute

通常情况下,每个命令由 6 个部分组成,有些系统会更多,但是这 6 个是通用的。

以下讲解每一部分中常用的 3 个符号,-以及/

第一列是分钟,第二列是小时,剩下的部分类似。如果一个部分要填多个可以用,比如,每个月的 1,2,19,20 号,就在 day 的那一栏填入1,2,19,20,逗号隔开即可。如果想表达连续的范围,比如每个月的 3 号到 10 号,当然可以用3,4,5,6,7,8,9,10,但是略显长,可以用3-10来替代更加简洁。至于*就是表示这个部分所有的值。还有/表示间隔频率,如刚刚表示 3 月到 10 月每两个月执行一次的改为3-10/2表示 3 月到 10 月,每两个月执行一次。

怎么建立属于自己的 crontab

设置环境变量

编辑当前用户home目录下的.profile文件(.profile 文件用来设置当前用户的环境变量)。在其中加入

# 以下指明编辑器用 vi,可以安装自己喜欢的更换
EDITOR=vi; export EDITOR

创建 crontab 文件

$ vi filename # 自己决定文件名
$ crontab filename # 执行后,系统在/var/spool/cron/crontabs 创建与用户名同名的文件,将 filename 中的内容 copy 过去
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇