使用linux下的crontab定時任務跑定時指令碼

2021-08-18 02:13:26 字數 2112 閱讀 4172

tags:定時任務 定時指令碼 crontab linux定時指令碼 linux

引言:應該有許多人曾經很好奇一些定時指令碼是怎麼做出來的。我們這次就來說一下定時指令碼的那些事,其實網上教程多得很,我就來蹭一下熱度吧。

我們經常用windows,但是估計很多人都不知道windows下面有乙個計畫任務,可以定時的執行一些任務。其實windows下面有好多小功能,對於程式設計師來說很有用,比如建立乙個批處理可以幫助我們一次性開啟我們需要的所有環境軟體,定時任務可以定時備份資料庫等等。

同樣的 在linux下也有用來週期性執行任務的工具,它就是crond。它會隨linux一起安裝,並預設自動啟動。它定時執行的最小粒度是1分鐘,也就是說crond程序每分鐘會定期檢查是否有要執行的任務,如果有要執行的任務,則自動執行該任務。

它的**如下

#crontab -u <-l, -r, -e>

options:

-u define user //指定乙個使用者

-e edit user's crontab //編輯某個使用者的任務

-l list user's crontab //列出某個使用者的任務計畫

-r delete user's crontab //刪除某個使用者的任務

-i prompt before deleting

-n set host in cluster to run users' crontabs

-c get host in cluster to run users' crontabs

-s selinux context

-x enable debugging

sevice crond status //如果輸出的有個"active(running)"(這兩個單詞是綠色的,上面一行還有個小綠點)證明正在執行中

sevice crond start //如果沒有執行這個命令可以啟動

service crond stop //關閉服務

service crond restart //重啟服務

service crond reload //重新載入配置

可以通過crontab -e命令來編輯定時任務,也可以直接編輯檔案。檔案位置有兩個

系統配置檔案(主配置檔案)位置 /etc/crontab

使用者配置檔案位置/var/spool/cron,檔名和此使用者同名,此使用者的cron資訊都記錄在這個檔案中

開啟後大概這個樣子

shell=/bin/bash

path=/sbin:/bin

:/usr/sbin

:/usr/bin

mailto=root

# 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

不得不佩服人家用文件都能寫出的效果來。看上圖已經很明白了

格式為:

分 小時 每個月的哪一天 月 每週的哪一天 使用者名稱(可省略) 要執行的命令

/var/log/cron.log這個檔案就可以,可以用tail -f /var/log/cron.log動態觀察,也可以用cat或者匯出檔案檢視均可

簡單教程到此結束,如果需要更高階的應用,就需要自己動手了。

如何在Linux中使用at和crontab命令

經驗豐富的系統運維工程師可以使得linux在無需人為介入的情況下,在指定的時間段自動啟用或停止某些服務或命令,從而實現運維的自動化。儘管我們現在已經有了功能彪悍的指令碼程式來執行一些批處理工作,但是,如果仍然需要在每天凌晨兩點敲擊鍵盤回車鍵來執行這個指令碼程式,這簡直太痛苦了 當然,也可以訓練您的小...

Linux下實現定時執行程式 crontab

在linux下,用crontab實現定時執行程式的功能。使用方式 crontab file u user 用指定的檔案替代目前的crontab。crontab u user 用標準輸入替代目前的crontab.crontab l user 列出使用者目前的crontab.crontab e user...

liunx下mysql備份及crontab自動備份

liunx下使用mysql的 mysqldump進行備份和還原資料操作 crontab命令可以幫助我們實現自動定時備份資料庫。備份某個資料庫 先建立備份目錄 mkdir p var local backup cd var local backup 備份資料庫 mysqldump uusername ...