crontab定時執行指令碼(linux下)
Linux有一個稱為crond的守護程式,主要功能是週期性地檢查 /var/spool/cron目錄下的一組命令檔案的內容,並在設定的時間執行這些檔案中的命令。使用者可以通過crontab 命令來建立、修改、刪除這些命令檔案。 例如,建立檔案crondFile,內容為“00 9 23 Jan * HappyBirthday”,執行“crontab cronFile”命令後,每當元月23日上午9:00系統自動執行“HappyBirthday”的程式(“*”表示不管當天是星期幾)。
crontab -e
進入一個vi 編輯介面
在最後一行加上
*/30 * * * * netstat > /tmp/net.log
表示每隔30分就執行netstat命令,並把執行結果存入net.log中。
Crontab是一個很方便的在unix/linux系統上定時(迴圈)執行某個任務的程式
使用cron服務,用 service crond status 檢視 cron服務狀態,如果沒有啟動則 service crond start啟動它,
cron服務是一個定時執行的服務,可以通過crontab 命令新增或者編輯需要定時執行的任務:
crontab -u //設定某個使用者的cron服務,一般root使用者在執行這個命令的時候需要此引數
crontab -l //列出某個使用者cron服務的詳細內容
crontab -r //刪除沒個使用者的cron服務
crontab -e //編輯某個使用者的cron服務
比如說root檢視自己的cron設定:crontab -u root -l
再例如,root想刪除fred的cron設定:crontab -u fred -r
在編輯cron服務時,編輯的內容有一些格式和約定,輸入:crontab -u root -e
進入vi編輯模式,編輯的內容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt
編輯/etc/crontab檔案,在末尾加上一行: 30 5 * * * root init 6 這樣就將系統配置為了每天早上5點30自動重新啟動。
需要將crond設定為系統啟動後自動啟動的服務,可以在/etc/rc.d/rc.local 中,在末尾加上
service crond start
如果還需要在系統啟動十載入其他服務,可以繼續加上其他服務的啟動命令。
比如: service mysqld start
基本用法:
1. crontab -l
列出當前的crontab任務
2. crontab -d
刪除當前的crontab任務
3. crontab -e (solaris5.8上面是 crontab -r)
編輯一個crontab任務,ctrl_D結束
4. crontab filename
以filename做為crontab的任務列表檔案並載入
crontab file的格式:
crontab 檔案中的行由 6 個欄位組成,不同欄位間用空格或 tab 鍵分隔。前 5 個欄位指定命令要執行的時間
分鐘 (0-59)
小時 (0-23)
日期 (1-31)
月份 (1-12)
星期幾(0-6,其中 0 代表星期日)
第 6 個欄位是一個要在適當時間執行的字串
例子:
#MIN HOUR DAY MONTH DAYOFWEEK COMMAND
#每天早上6點10分
10 6 * * * date
#每兩個小時
0 */2 * * * date (solaris 5.8似乎不支援此種寫法)
#晚上11點到早上8點之間每兩個小時,早上8點
0 23-7/2,8 * * * date
#每個月的4號和每個禮拜的禮拜一到禮拜三的早上11點
0 11 4 * mon-wed date
#1月份日早上4點
0 4 1 jan * date
補充:在使用crontab的時候,要特別注意的是執行指令碼中能夠訪問到的環境變數和當前測試環境中的環境變數未必一致,一個比較保險的做法是在執行的指令碼程式中自行設定環境變數(export)
(1)先建一個檔案crond.txt如下, 每天早上5點36分重新啟動
36 5 * * * reboot
(2)上傳到/opt目錄
(3)執行命令
crontab /opt/crond.txt
crontab -l
讓配置檔案生效:如果讓配置檔案生效,還得重新啟動cron,切記,既然每個使用者下的cron配置檔案修改後。也要重新啟動cron伺服器。
在Fedora 和Redhat中,我們應該用;
[[email protected] ~]# /etc/init.d/crond restart
如果讓crond 在開機時執行,應該改變其執行級別;
[[email protected] ~]# chkconfig --levels 35 crond on
service crond status 檢視 cron服務狀態,如果沒有啟動則 service crond start啟動它, cron服務是一個定時執行的服務,可以通過crontab 命令新增或者編輯需要定時執行的任務
Crontab檔案的每一行由六個域(minutes、hours、day of month、month、day of week、 command)組 成,域之間用空格或Tab分開,其中:
minutes: 分鐘域,值的範圍是0到59
hours: 小時域,值的範圍是0到23
day of month: 日期,值的範圍是1到31
month: 月份,值的範圍是1到12
day of week: 星期,值的範圍是0到6,星期日值為0
command: 所要執行的命令
如果一個域是*,表明命令可以在該域所有可能的取值範圍內執行。
如果一個域是由連字元隔開的兩個數字,表明命令可以在兩個數字之間的範圍內執行(包括兩個數字 本身)。
如果一個域是由逗號隔開的一系列值組成的,表明命令可以在這些值組成的範圍內執行。
如果日期域和星期域都有值,則這兩個域都有效。
編寫一個檔案,用以啟動自動備份程序。
cd /opt
touch reboot.txt
在reboot.txt中新增一下內容:
0 4 * * * reboot
crontab /opt/reboot.txt
用crontab -e編輯定時操作,例如加入下行命令:
用crontab -l命令來檢視
注意:需要啟動服務(新增在rc.local中)
重啟crond任務
/etc/init.d/cron restart (ubuntu下)
第一種 在Fedora或Redhat 等以RPM包管理的系統中;
[[email protected] ~]# /etc/init.d/crond start
[[email protected] ~]# /etc/init.d/crond stop
[[email protected] ~]# /etc/init.d/crond restart
/etc/rc.d/init.d/crond restart
命令簡介
crontab-操作每個使用者的守護程式和該執行的時間表。
部分引數說明
crontab file [-u user]-用指定的檔案替代目前的crontab。
crontab-[-u user]-用標準輸入替代目前的crontab.
crontab-1[user]-列出使用者目前的crontab.
crontab-e[user]-編輯使用者目前的crontab.
crontab-d[user]-刪除使用者目前的crontab.
crontab-c dir- 指定crontab的目錄。
crontab檔案的格式:M H D m d cmd.
M: 分鐘(0-59)。
H:小時(0-23)。
D:天(1-31)。
m: 月(1-12)。
d: 一星期內的天(0~6,0為星期天)。
cmd要執行的程式,程式被送入sh執行,這個shell只有USER,HOME,SHELL這三個環境變數。
下面是一個例子檔案:
#MIN HOUR DAY MONTH DAYOFWEEK COMMAND
#每天早上6點
106* * * date
#每兩個小時
0*/2* * * date
#晚上11點到早上8點之間每兩個小時,早上部點
0 23-7/2,8* * * date
#每個月的4號和每個禮拜的禮拜一到禮拜三的早上11點
0 11 4* mon-wed date
#1月份日早上4點
0 4 1 jan* date
範例
lark:~>crontab-1 列出使用者目前的crontab.
#MIN HOUR DAY MONTH DAYOFWEEK COMMAND
10 6* * * date
0*/2* * * date
0 23-7/2,8 * * * date
lark:~>
轉載於:http://blog.sina.com.cn/s/blog_61c9c41e0100n70z.html
相關推薦
crontab定時執行指令碼(linux下)
Linux有一個稱為crond的守護程式,主要功能是週期性地檢查 /var/spool/cron目錄下的一組命令檔案的內容,並在設定的時間執行這些檔案中的命令。使用者可以通過crontab 命令來建立、修改、刪除這些命令檔案。 例如,建立檔案crondFile,內容為“0
時間函式和定時執行緒(linux C )
1.日期時間輸出格式: printf("%04d-%02d-%02d\n",year,month,day); 輸出:1994-02-07 d表示輸出整數、2表示寬度、0表示不足兩位前面補0,右對齊。 2.signal函式: signal(SIGALRM,statis
PHP定時任務執行處理、Crontab定時執行程式,Linux設定定時任務(教程案例)
【第一步】:先寫task.sh指令碼檔案。 【第二步】:設定Crontab定時時間,定時執行task.sh指令碼檔案 【案例一】:每月1號、15號的06:10點,定時備份網站原始碼: 【第一步】:先寫youhutong.sh指令碼檔案。 [[email pr
樹莓派學習筆記——crontab定時執行指令碼
crontab定時執行指令碼 如果在玩樹莓派的過程中,我們需要定時或者定期的執行一些程式或指令碼,這裡有個好方法,就是Linux下的 crontab。 通常會用到的就是兩個命令: 檢視已有的定時任務 [email protected]:~ $ cront
nginx安裝(Linux下)
1、進入xshell或者terminal(此處以xshell為例),連線伺服器(ssh [email protected]主機IP地址) 2、獲取Nginx安裝包: 官網:https://nginx.org/en/download.html 3、使用wget命令下載Nginx包
Python基礎(linux下)---迴圈語句while,for和字串
for 迴圈的語法: #for 變數 in range(10): 迴圈需要執行的程式碼 #else: 迴圈結束時需要執行的程式碼 #1+2+3+…+100= c語言或者java: sum = 0 for(int i=1;i<=100;i++): sum = sum +
Python基礎(Linux下)---python的認識,安裝,資料型別,輸入輸出及分支語句
認識python Python是著名的“龜叔”Guido van Rossum在1989年聖誕節期間,為了打發無聊的聖誕節而編寫的一個程式語言。 Python為我們提供了非常完善的基礎程式碼庫,覆蓋了網路、檔案、GUI、資料庫、文字等大量內容,被形象地稱作“內建電池(batteries
redis3.2.2 安裝(linux下)
redis3.2.2 安裝
如何用VirtualBox使用虛擬雙核的XP系統(Linux下)
因為一般來說虛擬機器預設的是以單核來執行虛擬機器系統,但是這樣效能就收到了大大的限制,相信有部分愛使用虛擬機器朋友都會想要過為虛擬機器提供一個雙核的處理器。小弟最近折騰了一把,給大家說說我的經驗吧。 要為虛擬機器提供一個雙核甚至多核的處理器。要有兩個前提條件: 第一,要確定您的電腦的處理器支援Intel的V
crontab定時執行指令碼與手動執行指令碼結果不一致
遇到一個頭疼的問題,shell指令碼手工執行結果正確,但是放到crontab中執行,結果卻是錯誤的。 指令碼執行的路徑肯定是沒有問題的,比較懷疑crontab執行和手工執行兩者的環境不同,在手工執行指令碼時,通過ssh登入到伺服器,其間會自動執行root目錄下的.bash_
在linux下利用crontab定時執行PHP指令碼
1、使用crontab –e編輯定時任務 內容為: xx:xx:xx 執行一個test.php檔案 2、php檔案必須在檔案頭一行,加上直譯器路徑(就象perl做的那樣) #!/usr/local/bin/php PHP的
linux利用crontab定時執行java程式碼(jar)
這是在上一篇部落格https://blog.csdn.net/huihuiph/article/details/80237562 上新增的功能,這次在linux自動執行檔案轉移和刪除。廢話不多說,直接上程式碼邊分析:第一步:準備好java程式這裡不囉嗦,可看上一篇程式碼。儲存
利用CRONTAB自動定時執行任務(ARM-LINUX)
本人的專案中,應為系統的需要,需要在嵌入式環境下,實現開機自啟動定時執行指令碼/程式,以實現自動化。一開始是利用while 迴圈與 sleep 實現定時執行命令,而在瞭解到crond這一機制後,發現自己的嵌入式平臺所搭載的Angstrom系統中也支援crontab功能,於是
Linux下使用crontab命令定時執行指令碼
crontab是什麼 crontab怎麼使用 假設現在有這麼個場景:每天早上6點,執行一段指令碼,這段指令碼輸出Hello World到控制檯上。 可以這麼做: 編寫列印資訊的shell指
Linux下的crontab定時執行任務命令詳解
crontab命令常見於Unix和類Unix的作業系統之中,用於設定週期性被執行的指令。該命令從標準輸入裝置讀取指令,並將其存放於“crontab”檔案中,以供之後讀取和執行。該詞來源於希臘語 chronos(χρνο),原意是時間。通常,crontab儲存的指令被守護
Linux下定時執行指令碼
這個格式的前一部分是對時間的設定,後面一部分是要執行的命令,如果要執行的命令太多,可以把這些命令寫到一個腳本里面,然後在這裡直接呼叫這個指令碼就可以了,呼叫的時候記得寫出命令的完整路徑。時間的設定我們有一定的約定,前面五個*號代表五個數字,數字的取值範圍和含義如下:
mac 系統下 使用 crontab 命令設定定時執行指令碼,定時書寫規範
1. crontab -e 來編輯自定義自己的任務 【每天的 14點55分執行 python 指令碼】 55 14 * * * python /Users/hanjing/Desktop/pythonworkspace/yangcheapp/sendmail.py 輸
怎麼用批處理*.bat 執行檔案目錄下面的SQL語句指令碼(批量的)。。。@echo off是什麼意思?
Oracle下: 1.新增一個批處理檔案:如a.bat 2.新增一個SQL指令碼檔案:如a.sql 3.a.bat中輸入:sqlplus 使用者名稱/密碼 @C:\a.sql(假設a.sql在c:盤根目錄下) 4.然後執行這個批處理,就可以執行這個sql指令碼了.
linux crontab定時使用入門 (炒雞簡單的)
linux crontab的使用還是很簡單的, 主要用於定時執行任務, 在本文中, 我們來玩一下linux中的crontab, 確保任何菜鳥都能學會。 1. 先寫個待定時執行的shell指令碼, 內容如下: [email prote
Windows下MySQL日誌管理(Linux相似)1.1
-h 發現 註意 line _id mod sni ans avi 為什麽要開啟數據庫的日誌 當多個程序都在使用數據庫的時候。我們的數據庫有時候竟然還會掛掉。想找原因?發現沒日誌可查。各個程序自己的日誌又不能找到關鍵原因。所以要開啟數據庫的日誌系統。 控制日誌大