如何編輯Linux Crontab文件以安排作業

介紹

Linux中有一個叫做cron的守護進程,用於定期運行進程。

這樣做的方式是檢查系統上的某些文件夾以便腳本運行。 例如,有一個名為/etc/cron.hourly的文件夾,/ etc / cron.daily,/etc/cron.weekly和/etc/cron.monthly。 還有一個名為/ etc / crontab的文件。

默認情況下,您可以簡單地將腳本放入相關文件夾中以使其定期運行。

例如,打開一個終端窗口(通過按CTRL,ALT和T)並運行以下ls命令

ls / etc / cron *

您會看到每小時,每天,每周和每月運行的程序或腳本列表。

這些文件夾的問題在於它們有點模糊。 例如,日常意味著腳本每天運行一次,但您無法控制該腳本在當天運行的時間。

這就是crontab文件進入的地方。

通過編輯crontab文件,您可以獲得腳本或程序在您想要運行的確切日期和時間運行。 例如,也許你想在每天晚上6點備份你的文件。

權限

crontab命令要求用戶有權編輯crontab文件。 基本上有兩個文件用於管理crontab權限:

如果文件/etc/cron.allow存在,那麼想要編輯crontab文件的用戶必須在該文件中。 如果cron.allow文件不存在但存在/etc/cron.deny文件,則該用戶不得存在於該文件中。

如果兩個文件都存在,那麼/etc/cron.allow將覆蓋/etc/cron.deny文件。

如果兩個文件都不存在,那麼它取決於系統配置,用戶是否可以編輯crontab。

root用戶可以隨時編輯crontab文件。 您可以使用su命令切換到root用戶或使用sudo命令運行crontab命令。

編輯Crontab文件

每個有權限的用戶都可以創建自己的crontab文件。 cron命令基本上查找多個crontab文件的存在,並通過它們全部運行。

要檢查您是否有crontab文件,請運行以下命令:

crontab -l

如果您沒有crontab文件,則會顯示消息“沒有的crontab”,否則將顯示您的crontab文件(此功能因係統而異,有時它根本不顯示任何內容,有時顯示“”不要編輯這個文件“)。

要創建或編輯crontab文件,請運行以下命令:

crontab -e

默認情況下,如果沒有選擇默認編輯器,則會要求您選擇要使用的默認編輯器。 就我個人而言,我喜歡使用nano,因為它非常簡單易用,並且可以從終端運行。

打開的文件有很多信息,但關鍵部分是評論部分結束之前的示例(註釋用#開頭的行表示)。

#mh dom mon dow命令

0 5 * * 1 tar -zcf /var/backups/home.tgz / home /

有6條信息適合crontab文件的每一行:

對於每個項目(命令除外),您可以指定通配符。 看看下面的示例crontab行:

30 18 * * * tar -zcf /var/backups/home.tgz / home /

上述命令的意思是在30分鐘,18小時以及每週的任何一天,每月和每天運行一個命令,將主目錄壓縮到/ var / backups文件夾。

為了讓命令在每隔30分鐘運行一次,我可以運行以下命令:

30 * * * *命令

為了得到命令,每分鐘運行一次,我可以運行以下命令:

* 18 * * *命令

因此,您必須小心設置您的crontab命令。

例如:

* * * 1 *命令

上述命令將在1月份每週的每一天的每一小時的每一分鐘運行一次。 我懷疑這是你想要的。

要在1月1日凌晨5點運行一個命令,你需要在crontab文件中使用以下命令:

0 5 1 1 *命令

如何刪除Crontab文件

大多數情況下,您不想刪除crontab文件,但可能需要從crontab文件中刪除一些行。

但是,如果要刪除用戶的crontab文件,請運行以下命令:

crontab -r

更安全的方法是運行以下命令:

crontab -i

這問了一個問題:“你確定嗎?” 在刪除crontab文件之前。