溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CentOS下如何實行計劃任務

發布時間:2021-09-09 18:07:56 來源:億速云 閱讀:145 作者:chen 欄目:系統運維

本篇內容主要講解“CentOS下如何實行計劃任務”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“CentOS下如何實行計劃任務”吧!

1、循環執行的計劃任務

linux下面有atd和crond兩種計劃任務,其中,atd服務使用的at命令只能執行一次,而crond服務使用的crontab定義的命令,是循環作用的,所以crond才符合我們的要求。

crontab支持兩種狀態:一、直接編寫計劃任務;二、使用目錄的方式,放在目錄里面的都會定時執行。

2、可以使用的用戶

默認情況下,系統中可以登陸的用戶,都可以使用crontab定義計劃任務。不過,可以通過下面兩個文件限制權限:

引用

◆/etc/cron.allow:

將可以使用 crontab 的賬號寫入其中,若不在這個檔案內的使用者則不能使用 crontab;

◆/etc/cron.deny:

將不可以使用 crontab 的賬號寫入其中,若未記錄到這個檔案當中的使用者,就可以使用 crontab 。

※類似TCPWrapper定義的方式。

3、直接使用crontab編輯計劃任務:

命令:

crontab [-u username] [-l|-e|-r]

參數:

-u  :通過-u幫其它使用者建立/移除 crontab;

-e  :編輯 crontab 的內容

-l  :查看 crontab 的內容

-r  :移除 crontab 的所有內容(是全部的內容,如果只是刪除某個,用-e編輯即可)

內容格式:

* * * * * 命令

前面的五個*號,表示分、時、日、月、周,如:

代表意義 分鐘 小時 日期 月份 周

數字范圍 0-59 0-23 1-31 1-12 0-7

*號代表任何時間都接受的意思,任意。

*號之間用空格分開,如果是一段范圍,用-號連接;如果是隔開幾個時間,用,號表示。

另外,命令必須是編寫計劃任務的用戶有權限執行的,并且最后用絕對路徑。

例如:

#crontab -e

59 23 1 5 * mail linuxing < /home/test.txt

每在5月1日,23點59分就把/home/test.txt的內容作為郵件發給linuxing用戶

*/5 * * * * /opt/test.sh

每5分鐘就執行一次/opt/test.sh腳本

0 3,6 * * * /usr/local/bin/test.sh

每在3點和6點整點都執行/usr/local/bin/test.sh命令

0 8-12 * * * /root/backup.sh

8 點到 12 點之間的每小時的0分都執行/root/backup.sh

4、基于目錄的方式執行計劃任務

對于系統的計劃任務,已經在/etc/crontab里面定義,采用的就是基于目錄的方式。系統會定時讀取該文件,并根據里面的定義執行命令。

可以使用vi直接編寫/etc/crontab文件,其中格式如下:

#cat /etc/crontab

SHELL=/bin/bash  #使用的shell

PATH=/sbin:/bin:/usr/sbin:/usr/bin  #預定義的PATH路徑

MAILTO=root   #出現問題發Email給該用戶

HOME=/  #家目錄

# run-parts

01 * * * *   root      run-parts /etc/cron.hourly     #每小時的目錄

02 4 * * *   root      run-parts /etc/cron.daily       #每天

22 4 * * 0   root      run-parts /etc/cron.weekly    #每周日

42 4 1 * *   root      run-parts /etc/cron.monthly   #每個月1號

分 時 日 月 周 執行者身份  命令

可以看到前面的五個參數的定義和直接編輯計劃任務是一樣的,增加了執行的用戶定義和run-parts參數。

run-parts后面跟的是目錄名稱,例如:/etc/cron.hourly,表示每小時01分就到/etc/cron.hourly目錄中執行目錄下的所有可執行文件;當然,目錄是可以自己定義的。

如果你需要增加系統的計劃任務,只需要在對應的目錄添加執行文件即可,例如:我需要在每天都執行updatedb的操作,則我只需要把/usr/bin/updatedb的執行命令鏈接到/etc/cron.daily目錄就可以了。

※同樣的,如果不需要使用目錄的方式,也可以使用如下的方式:

02 01 * * * root /root/test.sh

也就是沒有了run-parts,后面就直接跟命令的絕對路徑

5、注意事項

◆如果使用crontab編輯計劃任務或直接修改/etc/crontab文件后,計劃任務沒有生效,可能需要重啟一下crond服務:service crond restart

◆當編寫/etc/crontab文件的時候,不要漏了指定執行計劃任務的用戶,這是和直接用crontab -e編輯不同的。

◆某用戶(如root)用crontab -e編輯的計劃任務存放在/var/spool/cron/root,這個文件下。但最好不要直接編輯他,因為crond執行的時候,會在/tmp目錄中建立需要的臨時文件,直接編輯會對此有影響,甚至出錯。

◆cron執行的每一項工作都會被紀錄到/var/log/cron這個日志文件中,可以從這個文件查看命令執行的狀態。

到此,相信大家對“CentOS下如何實行計劃任務”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女