在使用一個計算機系統時,常常需要在日程表上執行某些重復的工作。你可以通過使用Linux Cron工具和Crontab命令更簡便地執行每一次所需的命令,而不是手動去執行。想知道如何使用這些命令在Linux中安排定時任務嗎?繼續往下看吧。
就像Windows中的task調度工具一樣,你也可以利用Cron工具來安排Linux的工作,定期在固定的時間間隔運行。通常用于自動化系統維護或管理工作,如備份數據、更新包和更多的一些工作,任何Linux系統管理員都知道它的重要性。
Linux中的定時任務:基本指南
什么是Cron?
Cron服務是一種基于時間的工作安排服務,通常在系統啟動時啟動。它會檢查每一分鐘的工作,并在它們存在時啟動。
什么是Crontab?
為了控制任務進度,我們在Linux中使用Crontab程序。對于cron表來說,Crontab是一個配置文件。Crontab的每一行代表一個任務,包含關于運行什么和什么時候運行的信息。下面是Linux Crontan的格式:
M H DOM MON DOW Command
每當所有的時間規范字段與當前日期和時間匹配時,就會執行該命令。通常情況下,我們在時間規范字段中使用星號(*)來匹配該字段中的任何值。
如何打開和編輯Crontab
現在,讓我們學習如何打開和編輯Crontab文件,這是Linux任務調度中的一個重要步驟。為了實現這一目的,我們可以使用以下命令:
crontab –e
執行此命令后,可能會提示你選擇一個編輯器。如果你是初學者,建議選擇Nano,當然,也可以根據自己的喜好習慣任意選擇。
選擇編輯器之后,會打開一個類似于下面屏幕截圖的文件:
注意:Hash(#)符號用于表示注釋,這些注解將被Cron忽視。
定時任務
現在,為了在Linux中調度任務,你所要做的就是按照上面提到的格式輸入所有必要的細節。這里有一個例子:假設我想在每個月的第一天的凌晨2:30運行命令usr/bin/backup,需要將下面一行添加到Crontab:
30 02 1 * * /usr/bin/backup
30 : 30分
02 : 上午2點
1 : 第一天
* : 每個月
* : 這周的每一天
指定多個值和范圍
也有可能在Linux中安排工作多次出現。只需使用逗號分隔所需要的值。我們繼續用前面的例子進行介紹。現在,如果我想在下午2點半執行命令,我需要做的就是:
30 02,14 1 * * /usr/bin/backup
30 : 30分
02,14 :2 AM和2 PM
1 :第一天
* : 每個月
* : 這周的每一天
注意:我們已經利用14指定了下午2點,因為Crontab使用24小時的時間格式。
再者,Crontab甚至可以在Linux任務調度中指定一段時間,只需插入一個由dash (–)分隔的值。在這里,我們將再次考慮我們的初始示例,以展示它是如何完成的。這一次,假設我們希望在每個月的第一天的2點到2點之間執行命令。我們將以以下方式來做這件工作:
00 02-14 1 * * /usr/bin/backup
00 : 0 分
02-14 : 2AM, 3AM, 4AM, 5AM, 6AM, 7AM, 8AM, 9AM, 10AM, 11AM, 12AM, 1PM, 2PM 1 : 第一天
* : 每個月
* : 這周的每一天
Crontab快捷鍵
在本文中,關于如何在Linux中調度任務的一個好處是,考慮一下Crontab格式的下面的快捷方式和關鍵字,這在Linux中可以很方便地安排工作:
@yearly : 在每年1月1日凌晨0點運行一次
@annually : 與@yearly 相同
@monthly : 在每月第一天的凌晨0點運行一次
@weekly : 在每周日的凌晨0點運行一次
@daily : 每天0點運行一次
@midnight : 與@daily相同
@hourly : 在每小時開始時運行一次
例如:假設我每個月必須運行/usr/bin/backup命令,Crontab的格式應該是:
@monthly /usr/bin/backup
一旦你將更改保存到Crontab并退出,你會看到以下消息,這表明你成功地執行了該流程。
有任何疑問或個人建議,請在評論區留言與大家一起討論吧!