2015年12月14日 星期一

Linux 排程 log 相關 (cron)

crontab :crontab 這個指令所設定的工作將會持續循環的進行,可循環的時間為分鐘、小時、每週、每月或每年等。

主要指令
crontab [-u username] [-l|-e|-r]

選項與參數:
-u :只有 root 才能進行這個任務,亦即幫其他使用者建立/移除 crontab 工作排程;
-e :編輯 crontab 的工作內容
-l :查閱 crontab 的工作內容
-r :移除所有的 crontab 的工作內容,若僅要移除一項,請用 -e 去編輯。

#crontab -e
#會進入vi 編譯畫面讓做排程編譯

#crontab -r
#將該帳號所有排程移除

#crontab -l
#將所有排程清單List出來

Crontab -e 的畫面如下:


 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


假設


==============================

crond讀取檔案位置
/var/spool/cron/*    #cron執行讀取位置,若直接改寫則會生效,相對的若語法錯誤則就無法執行。
/etc/cron.d/*          #以時間做為區分,由
/etc/crontab           #同上,但不依USER區分。


/etc/cron.allow       #允許使用者使用cron的清單(白名單)
/etc/cron.deny        #拒絕使用者使用cron的清單(黑名單)
這兩者中,allow 比deny優先。


在伺服器維護日常作業裡常會用到,
Cron服務於每分鐘都會去讀取/etc/crontab 與 /var/spool/cron 的內容

故新增cron指令後並不需要做重啟服務的動作,
cron將會於下個分鐘來臨時自動讀取並依規則執行
crond 的執行程式存放在/usr/bin/crontab 


crond 執行的log完會存放在/var/log/cron 
/var/log/cron 

故可由此確認被執行的排程。
==============
參考來源:鳥哥
http://linux.vbird.org/linux_basic/0430cron.php

沒有留言:

張貼留言