Linux下crontab的使用
阿新 • • 發佈:2017-09-04
為什麽 bin es2017 技術分享 星期 roo spool def 變量
之前一直在Linux上使用crontab,今天換到了Ubuntu上踩了不少小坑,今天總結一下。
默認情況下Ubuntu裏都裝好了crontab,我們直接使用crontab來編輯命令:
結果出現了這個頁面,當時第一反應就是這個怎麽是這樣。。。
這裏一定要選對,之前一直選了2,超級難操作。後來發現可以使用 select-editor 重新進行選擇
[email protected]:/var/spool/cron/crontabs# select-editor
Select an editor. To change later, run ‘select-editor‘.
1. /bin/ed
2. /bin/nano <---- easiest
3. /usr/bin/vim.tiny
還是選3vim.tiny,不要相信2那裏寫的easiest,是騙人的。
編輯完後文件保存在了 /var/spool/cron/crontabs
我們使用crontab -e 定時一個任務
然後使用crontab -l 查看一下:
這裏 *****代表每分鐘執行一次,但是我保存帳號一直沒有執行。因此我需要查看crontab的log,但是默認是不開啟的。
於是需要 vim /etc/rsyslog.d/50-default.conf
把cron.*這句話前面的註釋給拿掉
更新完後重新加載配置文件,重啟服務
使用 cat /var/log/cron.log查看log,我們可以看到craontab是執行了我的配置的
我的腳本是重定向一個日期命名的文件,輸出出來。但是為什麽一直看不到文件出現呢。
後來問題找到了 原來是我這裏沒有指定路徑
指定了路徑之後,一切正常。剛開始還以為環境變量的問題,固在第二行加了那個path。
下面總結一下常用的craontab的命令:
* * * * * command 每1分鐘執行一次command 3,15 * * * * command 每小時的第3和第15分鐘執行 3,15 8-11 * * * command 在上午8點到11點的第3和第15分鐘執行 3,15 8-11 */2 * * command 每隔兩天的上午8點到11點的第3和第15分鐘執行3,15 8-11 * * 1 command 每個星期一的上午8點到11點的第3和第15分鐘執行 30 21 * * * /etc/init.d/smb restart 每晚的21:30重啟smb 45 4 1,10,22 * * /etc/init.d/smb restart 每月1、10、22日的4 : 45重啟smb 10 1 * * 6,0 /etc/init.d/smb restart 每周六、周日的1 : 10重啟smb 0,30 18-23 * * * /etc/init.d/smb restart 每天18 : 00至23 : 00之間每隔30分鐘重啟smb 0 23 * * 6 /etc/init.d/smb restart 每星期六的晚上11 : 00 pm重啟smb * */1 * * * /etc/init.d/smb restart 每一小時重啟smb * 23-7/1 * * * /etc/init.d/smb restart 晚上11點到早上7點之間,每隔一小時重啟smb 0 11 4 * mon-wed /etc/init.d/smb restart 每月的4號與每周一到周三的11點重啟smb 0 4 1 jan * /etc/init.d/smb restart 一月一號的4點重啟smb 01 * * * * root run-parts /etc/cron.hourly 每小時執行/etc/cron.hourly目錄內的腳本 說明:run-parts這個參數了,如果去掉這個參數的話,後面就可以寫要運行的某個腳本名,而不是目錄名了每1分鐘執行一次command
Linux下crontab的使用