亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Unix > 正文

詳解Unix/Linux中周期執行指令Crontab命令

2020-10-28 18:48:08
字體:
來源:轉載
供稿:網友

簡介

crontab命令常見于Unix和類Unix的操作系統之中,用于設置周期性被執行的指令。該命令從標準輸入設備讀取指令,并將其存放于“crontab”文件中,以供之后讀取和執行。

通常,crontab儲存的指令被守護進程激活,crond常常在后臺運行,每一分鐘檢查是否有預定的作業需要執行。這類作業一般稱為cron jobs。

cron 是 Unix/Linux 中提供定期執行 shell 命令的服務,包括 crond 和 crontab 兩部分:

     crond: cron 服務的守護進程,常駐內存負責定期調度

     crontab: cron 的管理工具,負責編輯調度計劃

下面的演示在 Ubuntu 16.04 下進行。基本的使用方法可以用命令 man crontab 查看

NAME  crontab - maintain crontab files for individual users (Vixie Cron)SYNOPSIS  crontab [ -u user ] file  crontab [ -u user ] [ -i ] { -e | -l | -r }

簡單解釋一下

    -e 編輯,類似 vim,保存退出時會檢查語法

    -l 列舉所有任務

    -r 刪除所有任務

如果 crontab 運行出錯,可以查看日志文件/var/log/syslog

基本語法

cron 的語法非常簡單,一共分六大塊,其中前五塊用于指定時間周期,最后一塊是具體執行的命令,看起來大概是這么個格式:

min hour day month week command

其中

    min 表示分鐘,范圍 0-59

    hour 表示小時,范圍 0-23

    day 表示天,范圍 1-31

        可以填寫 L,表示當月最后一天

        可以填寫 W,1W 表示離 1 號最近的工作日

    month 表示月,范圍 1-12

        每個月的最后一天 crontab 本身是不支持的,需要通過腳本判斷

    week 表示周,范圍 0-7

        這里 0 和 7 都表示周日

        周與日月不能并存,可能會沖突

        可以填寫 #,4#3 表示當月第三個星期四

        可以填寫 L,5L 表示當月最后一個星期五

    command 表示具體要執行的命令(最好是絕對路徑)

        如果有多條命令,則需要用&連接,或者將多條命令寫在shell腳本中,然后crontab定期執行這個shell腳本即可

另外,類似正則表達式,還有一些特殊符號幫助我們實現靈活調度

    * 星號,表示每個可能的值都接受

        例如 * * * * * command 表示每分鐘都執行 command 一次

    , 逗號,并列時間

        例如 * 6,12,18 * * * command 表示在 6 點、12 點和 18 點執行 command 一次

    - 減號,連續區間

        例如 * 9-17 * * * command 表示從 9 點到 17 點,每分鐘都執行 command 一次

    / 斜線,間隔單位

        例如 */5 * * * * command 表示每隔 5 分鐘執行 command 一次

系統級 Crontab

如果我們需要執行一些權限較高的指令,就需要利用 root 權限來執行,這時的機制和前面介紹的基本語法也是有區別的,我們需要編輯的文件是 /etc/crontab。先來看看其內容

dawang@dawang-Parallels-Virtual-Platform:~$ cat /etc/crontab# /etc/crontab: system-wide crontab# Unlike any other crontab you don't have to run the `crontab'# command to install the new version when you edit this file# and files in /etc/cron.d. These files also have username fields,# that none of the other crontabs do.SHELL=/bin/shPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin# m h dom mon dow user command17 * * * * root cd / && run-parts --report /etc/cron.hourly25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )#

我們需要在命令和時間間隔之間添加命令執行者,并且也可以添加環境變量在調度中使用。我們看到配置文件中有幾個 cron.* 文件,先來看看還有什么類似的文件

dawang@dawang-Parallels-Virtual-Platform:~$ ll /etc | grep cron-rw-r--r-- 1 root root  401 12月 29 2014 anacrontabdrwxr-xr-x 2 root root 4096 4月 21 06:14 cron.d/drwxr-xr-x 2 root root 4096 4月 21 06:14 cron.daily/drwxr-xr-x 2 root root 4096 4月 21 06:08 cron.hourly/drwxr-xr-x 2 root root 4096 4月 21 06:14 cron.monthly/-rw-r--r-- 1 root root  722 4月 6 05:59 crontabdrwxr-xr-x 2 root root 4096 4月 21 06:14 cron.weekly/

其中

    cron.d 目錄:該目錄下及子目錄中所有符合調度語法的文件都會被執行

    cron.deny:記錄拒絕執行的用戶

    cron.allow:記錄允許執行的用戶,這個文件的優先級較高,一般來說只需要配置一個文件即可(看是需要白名單還是黑名單機制)

    cron.daily/hourly/monthly/weekly 目錄:里面都是腳本,分別在指定的時間里執行

更多詳細介紹,可以輸入 man 5 crontab man 8 cron 查閱

原理

為什么我們用 crontab -e 編輯一下就可以添加一個定時任務呢?每次我們添加一行,這個工作就會被記錄到 /var/spool/cron/crontab 中,如果我的用戶名是 dawang,那么對應的文件就是 /var/spool/cron/crontab/dawang(需要 root 權限才能查看)。不過不建議直接修改,因為直接修改是不會進行語法檢查的。

在某些系統中,不一定會每次都讀取源配置文件(而是利用載入到內存的版本),這個時候我們就需要重啟 crond 服務,命令為 /sbin/service crond restart

Crond 服務管理

默認情況系統并沒有為我們啟動 crond 服務,如果想開機啟動,需要在 /etc/rc.d/rc.local 中添加 service crond start 這一行,其他的管理命令為

# 啟動服務/sbin/service crond start # 關閉服務/sbin/service crond stop # 重啟服務/sbin/service crond restart # 重新載入配置/sbin/service crond reload

實例測試

接著我們來實戰一下,第一次使用 crontab -e 需要我們選擇編輯器,默認是 nano,但是我選擇了 vim

dawang@dawang-Parallels-Virtual-Platform:~$ crontab -eno crontab for dawang - using an empty oneSelect an editor. To change later, run 'select-editor'. 1. /bin/ed 2. /bin/nano  <---- easiest 3. /usr/bin/vim.tinyChoose 1-3 [2]:

為了驗證真的在執行,我們建立兩個每分鐘都執行的操作,具體如下(主要關注最后兩行):

# Edit this file to introduce tasks to be run by cron.## Each task to run has to be defined through a single line# indicating with different fields when the task will be run# and what command to run for the task## To define the time you can provide concrete values for# minute (m), hour (h), day of month (dom), month (mon),# and day of week (dow) or use '*' in these fields (for 'any').## Notice that tasks will be started based on the cron's system# daemon's notion of time and timezones.## Output of the crontab jobs (including errors) is sent through# email to the user the crontab file belongs to (unless redirected).## For example, you can run a backup of all your user accounts# at 5 a.m every week with:# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/## For more information see the manual pages of crontab(5) and cron(8)## m h dom mon dow command* * * * * date >> /home/dawang/date.txt* * * * * echo "time to go!" >> /home/dawang/time.txt

這里做了兩件事,一個是每分鐘報時,另一個就是每分鐘輸出一段話,這里使用 >> 表示追加輸出,更多輸入輸出方式在下一節有介紹。如果剛才沒有啟動服務,現在用 service crond start 啟動,然后等待一段時間,就可以看到輸出啦,具體參考下面的命令,這里就不贅述了:

dawang@dawang-Parallels-Virtual-Platform:~$ ll | grep txt-rw-rw-r-- 1 dawang dawang 1849 7月 26 16:08 date.txt-rw-rw-r-- 1 dawang dawang 516 7月 26 16:08 time.txtdawang@dawang-Parallels-Virtual-Platform:~$ tail -n 10 date.txt2016年 07月 26日 星期二 16:01:01 CST2016年 07月 26日 星期二 16:02:01 CST2016年 07月 26日 星期二 16:03:01 CST2016年 07月 26日 星期二 16:04:01 CST2016年 07月 26日 星期二 16:05:01 CST2016年 07月 26日 星期二 16:06:01 CST2016年 07月 26日 星期二 16:07:01 CST2016年 07月 26日 星期二 16:08:01 CST2016年 07月 26日 星期二 16:09:01 CST2016年 07月 26日 星期二 16:10:01 CSTdawang@dawang-Parallels-Virtual-Platform:~$ tail -n 10 time.txt time to go!time to go!time to go!time to go!time to go!time to go!time to go!time to go!time to go!time to go!

重定向命令

這里直接給出例子

command > file 把標準輸出重定向到文件command >> file 把標準輸出追加到文件command 1 > file 把標準輸出重定向到文件command 2 > file 把標準錯誤重定向到文件command 2 >> file 把標準輸出追加到文件command 2>&1 把command命令標準錯誤重定向到標準輸出command > file 2>&1 把標準輸出和標準錯誤一起重定向到文件command >> file 2>&1 把標準輸出和標準錯誤一起追加到文件command < file 把command命令以file文件作為標準輸入command < file >file2 把command命令以file文件作為標準輸入,以file2文件作為標準輸出command <&- 關閉標準輸入

總結

以上就是這篇文章的全部內容了,希望對大家的學習或者工作能帶來一定的幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av在线一区| 欧美日本在线视频中文字字幕| 亚洲欧洲自拍偷拍| 亚洲a区在线视频| 日韩欧美亚洲国产一区| 久久久国产精品亚洲一区| 欧美精品一区在线播放| 亚洲影视中文字幕| 久久人人爽人人爽人人片av高请| 国产精品免费一区二区三区都可以| 久久夜精品香蕉| 国产精品爽爽ⅴa在线观看| 久久九九免费视频| 日韩av电影在线免费播放| 欧美精品在线极品| 国产精品高潮粉嫩av| 亚洲免费影视第一页| 亚洲在线免费观看| 久久久久久久成人| 亚洲大胆人体av| 26uuu亚洲伊人春色| 亚洲自拍偷拍视频| 日韩免费高清在线观看| 91精品视频大全| 中文字幕九色91在线| 国产精品久久久久免费a∨大胸| 97在线视频免费| 亚洲国产精品国自产拍av秋霞| 亚洲精品国精品久久99热| 91欧美精品成人综合在线观看| 日韩精品免费在线播放| 国产欧美日韩最新| 亚洲人成在线观看网站高清| 日韩av免费看| 国产欧美日韩精品在线观看| 国产做受高潮69| 91wwwcom在线观看| 久久在精品线影院精品国产| 欧美亚洲在线视频| 国产欧美在线视频| 成人日韩在线电影| 成人av资源在线播放| 国产丝袜高跟一区| 亚洲黄页网在线观看| 精品动漫一区二区| 国内精品国产三级国产在线专| 久久精品国产2020观看福利| 欧美性视频精品| 97免费视频在线播放| 色悠悠久久88| 久久99精品久久久久久噜噜| 国产精品高潮呻吟视频| 国产成人av网| 亚洲国产天堂久久国产91| 国产美女久久精品| 日韩av电影院| 欧美激情2020午夜免费观看| 亚洲欧美成人精品| 国产成人jvid在线播放| 亚洲人成自拍网站| 日韩女在线观看| 美女999久久久精品视频| 在线观看欧美视频| 亚洲精品视频免费在线观看| 日韩资源在线观看| 丝袜亚洲欧美日韩综合| 国产一区二区丝袜高跟鞋图片| 国产精品美乳一区二区免费| 久色乳综合思思在线视频| 国产精品久久久久久久电影| 国产精品一区=区| 欧美精品在线第一页| 欧美另类老女人| 尤物精品国产第一福利三区| 国产精品嫩草影院一区二区| 中文字幕国产亚洲2019| 日韩av电影在线免费播放| 亚洲影院色在线观看免费| 久久久国产精品x99av| 青青草原成人在线视频| 久久久99久久精品女同性| 欧美亚洲在线播放| 欧美wwwwww| 亚洲第一区中文99精品| 精品一区二区三区四区在线| 国产亚洲激情在线| 色www亚洲国产张柏芝| 久久99久久99精品中文字幕| 国产精自产拍久久久久久| 国产精品稀缺呦系列在线| 91超碰caoporn97人人| 日韩高清中文字幕| 欧美成人精品在线视频| 欧美性猛交xxxxx水多| 2019日本中文字幕| 欧美日韩综合视频网址| 日本高清视频一区| 一级做a爰片久久毛片美女图片| 欧美二区乱c黑人| 亚州成人av在线| 亚洲国产精品yw在线观看| 日韩黄色av网站| 国产一区二区精品丝袜| 亚洲欧美一区二区三区在线| 5566日本婷婷色中文字幕97| 亚洲欧美日韩国产中文专区| 欧美激情视频在线免费观看 欧美视频免费一| 精品少妇一区二区30p| 欧美电影免费观看高清| 欧美大尺度在线观看| 中文字幕久精品免费视频| 中文字幕亚洲欧美在线| 久热精品视频在线| 国产精品大陆在线观看| 久久久这里只有精品视频| 国产综合色香蕉精品| 成人av电影天堂| 欧美成aaa人片在线观看蜜臀| 久久久久久成人| 97精品伊人久久久大香线蕉| 激情亚洲一区二区三区四区| 久久精品国产69国产精品亚洲| 日韩精品在线视频美女| 日韩中文字在线| 91免费高清视频| 欧美视频在线免费| 韩国19禁主播vip福利视频| 97精品国产97久久久久久免费| 色婷婷综合久久久久| 欧美老肥婆性猛交视频| 国产亚洲一区二区精品| 亚洲精品国产免费| 久久久免费电影| www.日韩系列| 97久久精品人搡人人玩| 国产一区二区三区网站| 国产成人97精品免费看片| 91免费的视频在线播放| 高跟丝袜一区二区三区| 一区二区三区回区在观看免费视频| 欧美激情第6页| 久久天天躁狠狠躁夜夜躁| 亚洲欧美日韩一区在线| 日韩精品福利网站| 亚洲美女av网站| 国产精品视频成人| 亚洲综合色av| 国产在线999| 欧美风情在线观看| 亚洲最新视频在线| 亚洲第一精品电影| 精品国产乱码久久久久久婷婷| 国产大片精品免费永久看nba| 欧美国产精品人人做人人爱| 久久久久成人网| 久久精品中文字幕一区| 欧美性猛交xxxxx水多| 91国产精品91| 久久精品国产99国产精品澳门| 日本三级久久久| 成人h视频在线| 欧美裸体xxxx极品少妇软件| 久久全球大尺度高清视频| 亚洲国模精品一区|