1. 程式人生 > >Linux下crontab的使用

Linux下crontab的使用

為什麽 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的使用