這篇我會放在這還是因為以PHP為出發點,相信PO在這會有幫助。
原文:cron jobs crontab 排程教學
在linux系統中,如 freebsd,cron 排程的資料是存在/etc/crontab中,我們可以直接輸入 vi /etc/crontab進行編輯。 Linux Cron 指令- crontab -e 編輯排程 (edit cron)
- crontab -r 移除排程 (remove cron)
- crontab -l 顯示目前排程 (list cron)crontab -u 改變排程的執行身分: crontab -u user filename
Cron 語法介紹分鐘
| 小時
| 日
| 月
| 星期
| 執行身份
| 指令
|
---|
0~59
| 0~23
| 1~31 (29,30)
| 1~12
| 0~6 0是星期日,6是星期六
| 帳號
| /usr/bin/xxxx
|
Cron 範例 ( Example )每5分鐘執行一次 */5 * * * * root /usr/libexec/atrun 每5小時執行一次 * */5 * * * root /usr/libexec/atrun 1至20號每天執行一次 0 1 1-20 * * root /usr/libexec/atrun 當分針移到第5分時,執行此 cron 5 * * * * root /usr/libexec/atrun 當時針移到1點 1 分時,執行此 cron 1 1 * * * root /usr/libexec/atrun 每週一的1點1分,執行 1 1 * * 1 root /usr/libexec/atrun 2月29日時針到1點1分,執行
1 1 29 2 * root /usr/libexec/atrun 8點到16點每5分鐘執行一次 cron */5 8-16 * * * root /usr/libexec/atrun Redirect Output需要做轉導輸出時加至後方,範例為輸出至空(/dev/null): */5 8-16 * * * root /usr/libexec/atrun > /dev/null start cron在 Linux 中,有個程式叫 crond ,意思是 cron daemon,大部分的 Linux 系統都會自動背景啟開這個程式,但是有時候會碰到 cron 沒有啟動的狀態,啟動方式如下: sudo service crond start 啟動之後,我會使用 tail -f /var/log/cron 這個指令來檢查 /etc/crontab 中的程式,是否有正確的被執行。 如何讓 cron job 自動 SCP 備份資料首先我們要啟用 SSH Agent,有了 SSH Agent ,就能夠執行 scp 指令,並且自動通過輸入密碼的過程。 先在個人目錄下新增 .bash_profile ,並加入以下的內容,加入完成後得重新載入 .bash_profile , 使用指令「source ~/.bash_profile」,之後我們就可以用 start_agent 啟動 SSH Agent。 .bash_profile- SSH_ENV=$HOME/.ssh/environment
- function start_agent {
- echo "Initialising new SSH agent..."
- /usr/bin/ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV}
- echo succeeded
- chmod 600 ${SSH_ENV}
- . ${SSH_ENV} > /dev/null
- ssh-add id_rsa
- }
接下來修改 /etc/crontab ,將備份的指令輸入就可以了,如果想看執行的 Log ,可以在指令的最後補上 「 2>&1 > ~/cronLog」,這樣程式就會將結果存到 ~/cronLog。 /etc/crontab auto scp- 1 1 * * * userxx . /home/userxx/.ssh/environment && /usr/bin/scp puritys.me:~/var/backup/* ~/
-
這個範例是每天自動備份另一台機器的資料,但是時間一久 ,備份的資料會越來越多,最後硬碟會撐不住,所以又要加一個自動刪除舊檔的 cron job,下面這個範例會自動刪除五天前的 gz 備份檔。 /etc/crontab auto rm- 40 1 * * * userxx /usr/bin/rm `date --date="-5 day" +"\%Y-\%m-\%d"`*.gz
-
This post was refered by Puritys Chen
[Linux] Crontab 排程使用教學 - 參數速查 |