crontab定時任務

2021-09-14 00:47:29 字數 2729 閱讀 1588

linux中執行定時任務,通常是通過crond這個守護程序來完成的,用ps -ef | grep crond | grep -v grep可以看到。它會從三個地方讀取配置檔案來進行後台任務的執行:

/var/spool/cron/$/etc/crontab

/etc/cron.d/*

這些配置檔案記錄了命令列以及執行週期等資訊。下面來分別看看這三種型別的配置檔案:

第乙個 * 代表每小時中的第幾分鐘(0-59)

第二個 * 代表每天的第幾個小時(0-23)

第三個 * 代表每個月中的第幾天(1-31)

第四個 * 代表每年的第幾個月(1-12)

第五個 * 代表每週的星期幾(0-7,0和7都代表星期日)

特殊符號

,代表不連續的時間。比如0 8,12,16 * * *,就代表在每天的8點0分,12點0分,16點0分各執行一次。

-代表連續的時間範圍。比如0 5 * * 1-6,代表在周一到週六的凌晨5點0分執行命令

*/n代表每隔多久執行一次。比如*/10 * * * *,代表每隔10分鐘就執行一遍命令

例:

案例

*/1 * * * * echo 'hello' >> /tmp/a.txt每隔一分鐘向/tmp/a.txt中追加一行hello,可以使用tail -f /tmp/a.txt觀察

ps:使用crontab -e效果等同於vim /var/spool/cron/$
這個檔案負責安排由系統管理員制定的維護系統以及其他任務的crontab。

shell=/bin/bash

path=/sbin:/bin:/usr/sbin:/usr/bin

mailto=root

home=/

# for details see man 4 crontabs

# example of job definition:

# .---------------- minute (0 - 59)

# | .------------- hour (0 - 23)

# | | .---------- day of month (1 - 31)

# | | | .------- month (1 - 12) or jan,feb,mar,apr ...

# | | | | .---- day of week (0 - 6) (sunday=0 or 7) or sun,mon,tue,wed,thu,fri,sat

# | | | | |

# * * * * * user-name command to be executed

# run-parts

00 * * * * root run-parts /etc/cron.hourly

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

22 4 * * 0 root run-parts /etc/cron.weekly

44 4 1 * * root run-parts /etc/cron.monthly

mailto=root是說,當 /etc/crontab 這個檔案中的例行性命令發生錯誤時,會將錯誤訊息或者是螢幕顯示的訊息傳給誰。

00 * * * * root run-parts /etc/cron.hourly:在 #run-parts 之後的命令,可以看到,五個佔位符後面接的是root,代表以root身份執行。而run-parts代表後面接的/etc/cron.hourly是該目錄內(/etc/cron.hourly)的所有可執行檔案,也就是說,每個小時的00分,系統會以root身份去/etc/cron.hourly這個目錄下執行所有可執行的檔案,後面三行也是類似的意思。可以將每天需要執行的命令直接寫到/etc/cron.daily即可,這樣可以不使用crontab -e。

該目錄用來存放任何要執行的crontab檔案或指令碼。

檢視/etc目錄下有沒有cron.allow或cron.deny檔案,作用如下:

如果兩個檔案都不存在,則只有root使用者才能使用crontab命令。

如果cron.allow存在但cron.deny不存在,則只有列在cron.allow檔案裡的使用者才能使用crontab命令,如果root使用者也不在裡面,則root使用者也不能使用crontab。

如果cron.allow不存在, cron.deny存在,則只有列在cron.deny檔案裡面的使用者不能使用crontab命令,其它使用者都能使用。

如果兩個檔案都存在,則列在cron.allow檔案中而且沒有列在cron.deny中的使用者可以使用crontab,如果兩個檔案中都有同乙個使用者,以cron.allow檔案裡面是否有該使用者為準,如果cron.allow中有該使用者,則可以使用crontab命令。

crontab命令用於安裝、刪除或者列出用於驅動cron後台程序的**。使用者把需要執行的命令序列放到crontab檔案中以獲得執行。

linux下的crontab定時執行任務命令詳解

crontab定時任務

今天工作項有個任務是讓ubuntu定時執行某個指令碼,對postgresql資料庫進行定時備份。linux 系統都有個cron定時任務的機制。今天做些筆記,以便日後翻查。注意 cron機制是有個使用者系統的概念的,即分系統cron和使用者cron,每個使用者所執行的cron任務可能不同。1.以roo...

crontab定時任務

基本格式 command 分 時 日 月 周 命令 第1列表示分鐘1 59 每分鐘用 或者 1表示 第2列表示小時1 23 0表示0點 第3列表示日期1 31 第4列表示月份1 12 第5列標識號星期0 6 0表示星期天 第6列要執行的命令 我的需求是定時備份mongodb 編寫任務執行的指令碼ba...

Crontab定時任務

我們可以使用crontab執行一些週期任務 crontab u user file crontab u user 將file做為crontab的任務列表檔案並載入crontab 編輯crontab檔案內容 顯示crontab檔案內容 刪除載入後的crontab檔案內容 每分鐘向使用者目錄下的log....