(Translated by https://www.hiragana.jp/)
Cron - 维基百科,自由的百科全书 とべ转到内容ないよう

Cron

本页使用了标题或全文手工转换
维基百科ひゃっか自由じゆうてき百科ひゃっかぜん

工具こうぐがた软件cronいち类Unixてき操作そうさけいしたてきもと于时间的にん务管理系りけい统。よう户们以通过cronざい固定こてい时间、にち、间隔,运行定期ていきにん务(以是命令めいれい脚本きゃくほん)。cron常用じょうよう于运维和管理かんりただし也可よう于其地方ちほう,如:定期ていき载文けん邮件。cron该词らいげんまれ腊语chronos(χρόνος),原意げんい时间。

通常つうじょうにん务时间表(crontab)ぶんけん储存てき指令しれいcrondまもり护进ほどけいどうまもり护进ほどざいきさきだい运行,并每一分钟检查是否有定期的作业需要执行。这类さく一般いっぱんしょうcron jobs


举例

  1. ┌───────────── minute (0–59)
  2. │ ┌───────────── hour (0–23)
  3. │ │ ┌───────────── day of the month (1–31)
  4. │ │ │ ┌───────────── month (1–12)
  5. │ │ │ │ ┌───────────── day of the week (0–6) (Sunday to Saturday;
  6. │ │ │ │ │ 7 is also Sunday on some systems)
  7. │ │ │ │ │
  8. │ │ │ │ │
  9. * * * * * <command to execute>

crondもり护进ほど

[编辑]

crond一个用于执行周期命令的守护进程。[1]つう过守护进ほど/lib/systemd/system/crond.service形式けいしき运行てきcronほどじょしょう为crond。[2] cronかいどおり过以みち查找crontabs:[3]

  • /etc/crontab:为系统にん务时间表(crontab)以前いぜんよう于跑以日为单、以周为单、以月为单てきにん务,现在よう于跑anacron
  • /etc/cron.d/:该目录包含ほうがんけい统层てきにん务时间表(crontabs)[4]不同ふどうよう户共どう使用しよう
  • /var/spool/cron/:该路みち包含ほうがんよう户通过crontab 命令めいれい创建てきにん务时间表(crontables)。

crontab命令めいれい

[编辑]

crontab 命令めいれいよう于维护每个用户的にん务时间表(crontab)ぶんけん[5]

crontab 命令めいれいよう于安そうにん务时间表(crontab)ぶんけん,删除れつ举 crondもり护进ほどやめ经在使用しようてきにん务时间表(crontab)。まい个用户都かい拥有自己じこ独自どくじてきにん务时间表(crontab),这些ぶんけんかいそんざい/var/spool/录下,けん议用户直接ちょくせつおさむあらため这些ぶんけん。MLSしきてきSELinux,你可以为这些にん务时间表(crontab)ぶんとう级。[6]

crontabぶんけん

[编辑]

crontabぶんけん包含ほうがんcrondもり护进ほどしょ需的いち系列けいれつさく业和指令しれい[7]

crontabぶんけんてきごといちぎょうひとし遵守じゅんしゅ特定とくていてき格式かくしきゆかりそらかくあるtabぶんへだた为数个领いきまい个领いき放置ほうち单一或多个数值。

ぶんけん格式かくしき

[编辑]

よう户文けん

[编辑]

/var/spool/cron/したてきにん务时间表(crontab)ぶんけんよう户层てき格式かくしき如下:

# ぶんけん格式かくしき說明せつめい
# ┌──ぶんかね(0 - 59)
# │ ┌──しょう(0 - 23)
# │ │ ┌──(1 - 31)
# │ │ │ ┌─つき(1 - 12)
# │ │ │ │ ┌─ほし(0 - 6,表示ひょうじ从周いたしゅうろく)
# │ │ │ │ │
# *  *  *  *  * 執行しっこうてき命令めいれい

ちゅう

  1. ざいぼう些系统里,ほし期日きじつ也可以为7
  2. 很直かんてき用法ようほう:如果ほし同時どうじ設定せってい麼其ちゅうてきいち條件じょうけん滿足まんぞく指令しれい便びんかい執行しっこう。請参考さんこうれい
  3. ぜん5いきしょうぶん時日じじつがつあまね方便ほうべん個人こじん記憶きおく

したがえだいろくいきおこりゆびあきらよう執行しっこうてき命令めいれい

けい统文けん

[编辑]

/etc/crontab/etc/cron.d/录下てきにん务时间表(crontabs)ぶんけんけい统层てき格式かくしき如下:

# ぶんけん格式かくしき說明せつめい
# ┌──ぶんかね(0 - 59)
# │ ┌──しょう(0 - 23)
# │ │ ┌──(1 - 31)
# │ │ │ ┌─つき(1 - 12)
# │ │ │ │ ┌─ほし(0 - 6,表示ひょうじ从周いたしゅうろく)
# │ │ │ │ │
# *  *  *  *  *  よう户名 執行しっこうてき命令めいれい

けい统层てきにん务时间表(crontabs)てきにん务经常会じょうかい指定してい一个或以上的用户进行执行,いんにん务时间表(crontabs)ぶんけん需要じゅよう增加ぞうかよう户名”だん[8]

おもて达式

[编辑]

ざい一个区域里填写多个数值的方法:

  • 逗号(,表示ひょうじれつ举,れい如: 1,3,4,7 * * * * echo hello world 表示ひょうじざいまいしょう时的1、3、4、7ふん时,しるし"hello world"。
  • 连词-表示ひょうじ范围,れい如:1-6 * * * * echo hello world表示ひょうじまいしょう时的1いた6ふん钟内,まいぶん钟都かいしるし"hello world"。
  • ほしごう*代表だいひょうにんなん可能かのうてき值。れい如:ざいしょう时域”さとてきほしごうとう于是“まいいち个小时”。
  • ひゃくふんごう(%) 表示ひょうじまい"。れい如:*%10 * * * * echo hello world 表示ひょうじまい10ふん钟打しるしいちかい"hello world"。

标准

[编辑]

ぼう些cronほどじょてき扩展版本はんぽん(如:Quartz Java scheduler)也支持しじはす线('/')操作そうさよう表示ひょうじとべ过某些给じょうてきすうれい如,“*/3”ざいしょう时域中等ちゅうとう于“0,3,6,9,12,15,18,21”とう3整除せいじょてきすう

れい

[编辑]

AIXけい管理かんり员的Crontabぶんけん

[编辑]
 #=================================================================
 #      SYSTEM ACTIVITY REPORTS
 #  8am-5pm activity reports every 20 mins during weekdays.
 #  activity reports every hour on Saturday and Sunday.
 #  6pm-7am activity reports every hour during weekdays.
 #  summary prepared at 18:05 every weekday.
 #=================================================================
 0,20,40 8-17 * * 1-5 /usr/lib/sa/sa1 1200 3 &
 0 * * * 0,6 /usr/lib/sa/sa1 &
 0 18-7 * * 1-5 /usr/lib/sa/sa1 &
 5 18 * * 1-5 /usr/lib/sa/sa2 -s 8:00 -e 18:01 -i 3600 -ubcwyaqvm &

常見つねみ錯誤さくご

[编辑]

いち常見つねみてき錯誤さくご命令めいれいぎょうそう引號ちゅう使用しよう%ときはん斜線しゃせん\,れい如:

# 錯誤さくごてきれい:
1 2 3 4 5 touch ~/error_`date "+%Y%m%d"`.txt

ざいもり护进ほど发出てき電子でんし郵件ちゅう會見かいけんいた錯誤さくご訊息:

/bin/sh: unexpected EOF while looking for `'''''''
# 正確せいかくてきれい:
1 2 3 4 5 touch ~/right_$(date +\%Y\%m\%d).txt

# 使用しようたん引號也可以解决問題もんだい: 1 2 3 4 5 touch ~/error_$(date '+%Y%m%d').txt
# 使用しようたん引號就不ようはん斜線しゃせんりょう。這個れいかいさんせい這樣いちぶんけん~/error_\2006\04\03.txt 1 2 3 4 5 touch ~/error_$(date '+\%Y\%m\%d').txt

しもれいいち常見つねみ錯誤さくご

# Prepare for the daylight savings time shift
59 1 1-7 4 0 /root/shift_my_times.sh

はつようざい四月的第一個星期日早晨159ふん運行うんこうshift_my_times.sh,ただし這樣設置せっちたい

特殊とくしゅとうほしいきだいいき指定していため * ときほしいきあずかいきだいさんいき執行しっこうあずか操作そうさ;而當ほしいきだいいき指定していため * 以外いがいてき内容ないようほしいきあずかいき執行しっこうある操作そうさ所以ゆえん這個ほどじょかいざい4がつ1にちいたり7にち以及4がつあまりてきごといちほし期日きじつ執行しっこう

另一個常見錯誤是對分鐘設置的誤用。したれいよく一個程序兩個小時運行一次:

# adds date to a log file
* 0,2,4,6,8,10,12,14,16,18,20,22 * * * date >> /var/log/date.log

上述じょうじゅつ設置せっちかい使該程じょざい偶數ぐうすうしょう内的ないてきごといちふんかね執行しっこういち正確せいかくてき設置せっち

# runs the date command every even hour at the top of the hour
0 0,2,4,6,8,10,12,14,16,18,20,22 * * * date >> /var/log/date.log
# an even better way
0 */2 * * * date >> /var/log/date.log

发送电子邮件

[编辑]

如果输出结果crontabさとてき命令めいれい么cronまもり护进ほどかいよう电子邮件はた它发给用户。

  • わかそう关闭ぼう命令めいれいてき输出结果,以将输出结果重定しげさだむかいいたる/dev/null
>/dev/null 2>&1
  • ざい常用じょうようてきVixie cronなか,也可以在ぶんけんてき开始部分ぶぶん加入かにゅう命令めいれいらい关闭所有しょゆう命令めいれいてき邮件输出:
MAILTO=""

cron命令めいれい

[编辑]
/etc/init.d/cron reload
#Reloading configuration files for periodic command scheduler: cron.
/etc/init.d/cron stop
#Stopping cron (via systemctl): cron.service.
/etc/init.d/cron start
#Starting cron (via systemctl): cron.service.
/etc/init.d/cron restart
#Restarting cron (via systemctl): cron.service.
/etc/init.d/cron status

其他话题

[编辑]

参考さんこう文献ぶんけん

[编辑]
  1. ^ daemon to execute scheduled commands. (原始げんし内容ないようそん于2019-12-18). 
  2. ^ DESCRIPTION of cron. (原始げんし内容ないようそん于2019-12-18). 
  3. ^ Cron checks these files and directories:. (原始げんし内容ないようそん于2019-12-18). 
  4. ^ /etc/cron.d/ a directory for storing system crontabs.. (原始げんし内容ないようそん于2019-12-08). 
  5. ^ crontab命令めいれいてき名字みょうじあきら. (原始げんし内容ないようそん于2020-02-03). 
  6. ^ crontab命令めいれいてき描述. (原始げんし内容ないようそん于2020-02-03). 
  7. ^ A crontab file contains instructions for the cron(8) daemon. (原始げんし内容ないようそん于2019-12-08). 
  8. ^ Jobs in /etc/cron.d/. (原始げんし内容ないようそん于2019-12-08). 

外部がいぶ链接

[编辑]

ぶん

[编辑]

软件

[编辑]