Ubuntu cron 定時執行任務

2021-09-12 03:54:53 字數 2614 閱讀 6574

cron是乙個linux定時執行工具,可以在無需人工干預的情況下執行作業。在ubuntu server 下,cron是被預設安裝並啟動的。通過/etc/crontab檔案,可以看到以下內容:

ununtu 通過呼叫 run-parts 命令,定時執行四個目錄下的所有指令碼。

1)/etc/cron.hourly,目錄下的指令碼會每個小時讓執行一次,在每小時的2分鐘時執行;

2)/etc/cron.daily,目錄下的指令碼會每天讓執行一次,在每天0點17分時執行;

3)/etc/cron.weekly,目錄下的指令碼會每週讓執行一次,在每週第七天的3點56分時執行;

4)/etc/cron.mouthly,目錄下的指令碼會每月讓執行一次,在每月19號的5點32分時執行;

當然,以上的時間均是系統預設時間,可以根據自己的需求進行修改。

在ubuntu 9.10下,cron是被預設安裝並啟動的。而 ubuntu 下啟動,停止與重啟cron,均是通過呼叫/etc/init.d/中的指令碼進行。命令如下:

1)service cron start  /*啟動服務*/

2)service cron stop /*關閉服務*/ 

3)service cron restart / *重啟服務*/

4)service cron reload /*重新載入配置*/ 

可以通過以下命令檢視cron是否在執行(如果在執行,則會返回乙個程序id):

# pgrep cron

crontab 命令用於安裝、刪除或者列出用於驅動cron後台程序的**。也就是說,使用者把需要執行的命令序列放到crontab檔案中以獲得執行,每個使用者都可以有自己的crontab檔案。以下是這個命令的一些引數與說明:

1)crontab -u /*設定某個使用者的cron服務*/ 

2)crontab -l /*列出某個使用者cron服務的詳細內容*/ 

3)crontab -r /*刪除某個使用者的cron服務*/ 

4)crontab -e /*編輯某個使用者的cron服務*/ 

引數名稱 含義 示例

-l 顯示使用者的crontab檔案的內容 crontabl –l

-i 刪除使用者的crontab檔案前給提示 crontabl -ri

-r 從crontab目錄中刪除使用者的crontab檔案 crontabl -r

-e 編輯使用者的crontab檔案 crontabl -e

/etc/crontab檔案語法如下:

minute hour day month dayofweek command

分鐘 小時 天 月 天每星期 命令

每個字段代表的含義及取值範圍如下:

minute :分鐘(0-59),表示每個小時的第幾分鐘執行該任務

hour : 小時(1-23),表示每天的第幾個小時執行該任務

day : 日期(1-31),表示每月的第幾天執行該任務

month : 月份(1-12),表示每年的第幾個月執行該任務

dayofweek : 星期(0-6,0代表星期天),表示每週的第幾天執行該任務

command : 指定要執行的命令(如果要執行的命令太多,可以把這些命令寫到乙個指令碼裡面,然後在這裡直接呼叫這個指令碼就可以了,呼叫的時候記得寫出命令的完整路徑)

在這些欄位裡,除了「command」是每次都必須指定的字段以外,其它欄位皆為可選字段,可視需要決定。對於不指定的字段,要用「*」來填補其位置。同時,cron支援類似正規表示式的書寫,支援如下幾個特殊符號定義:

「*」 ,代表所有的取值範圍內的數字;

「/」 , 代表」每」(「*/5」,表示每5個單位);

「-」 , 代表從某個數字到某個數字(「1-4」,表示1-4個單位);

「,」 ,分開幾個離散的數字;

舉例如下:

5 * * * * ls /*指定每小時的第5分鐘執行一次ls命令*/ 

30 5 * * * ls /*指定每天的 5:30 執行ls命令*/ 

30 7 8 * * ls /*指定每月8號的7:30分執行ls命令*/ 

50 7 * * * root run-parts /etc/cron.daily /*每天7:50以root 身份執行/etc/cron.daily目錄中的所有可執行檔案*/

1.執行如下命令新增任務

# crontab -e

1)直接執行命令列,比如每隔1分鐘執行date命令並將結果儲存至檔案/tmp/testcron.txt中,cron 格式如下:

*/1 * * * * date >> /tmp/testcron.txt

2)執行shell 指令碼,比如每隔3分鐘執行一次/var/backups/test.sh 檔案,cron 格式如下:

*/3 * * * * /var/backups/test.sh

檔案 /var/backups/test.sh 的內容如下:

———————————————————————————————————————–

#!/bin/sh

cd /var/backups/

now=`date 『+%y%m%d』`

tar -zcf /var/backups/$website.tar.gz /var/www/html/

2. 重啟cron 服務

# service cron restart

nodejs通過later實現定時執行任務

大多數情況我們都選用使用linux的cron來控制定時執行的任務。當我們要維護多台計算機,幾十個,幾百個定時任務的時候,用cron會帶來非常大的運維成本。可能寫到程式中,就是乙個不錯的選擇了。nodejs有乙個later的外掛程式可以簡單實現該功能。如果已經安裝過npm,可以直接執行npm inst...

定時執行任務

在windows上,使用configuration task scheduler 任務計畫程式 task scheduler library 任務計畫程式庫 create task.或者 control panel scheduled tasks add a scheduled task.在linu...

定時執行備份

centos 作業系統 1.編寫備份程式 2.使用crontab命令,定時執行備份程式 步驟一 編寫備份檔案bak.py coding utf 8 import os import time source root a.py 目標目錄 targetdir root backup 目標目錄下的當天日期...