Mac下使用crontab來實現定時任務

2022-03-20 00:53:53 字數 1809 閱讀 3414

說明:

1、linux和mac下操作crontab都是一致的

2、配置檔案都在/etc/crontab下,如果沒有就建立。

3、測試發現直接使用crontab -e命令建立的定時任務是放在臨時資料夾的,重啟會刪除,並且與/etc/crontab檔案無關聯。

實際操作:

檢視 crontab 是否啟動

sudo launchctl list | grep cron
檢查需要的檔案

$  launchagents  ll /etc/crontab

ls: /etc/crontab: no such file or directory #表示沒有這個檔案,需要建立乙個

建立檔案

sudo touch /etc/crontab
crontab的引數

-u user:用來設定某個使用者的crontab服務;

file:file是命令檔案的名字,表示將file做為crontab的任務列表檔案並載入crontab。如果在命令列中沒有指定這個檔案,crontab命令將接受標準輸入(鍵盤)上鍵入的命令,並將它們載入crontab。

-e:編輯某個使用者的crontab檔案內容。如果不指定使用者,則表示編輯當前使用者的crontab檔案。

-l:顯示某個使用者的crontab檔案內容,如果不指定使用者,則表示顯示當前使用者的crontab檔案內容。

-r:從/var/spool/cron目錄中刪除某個使用者的crontab檔案,如果不指定使用者,則預設刪除當前使用者的crontab檔案。

-i:在刪除使用者的crontab檔案時給確認提示。

eg: */1 * * * * /bin/date >> /user/username(你的使用者名稱)/time.txt表示每分鐘輸出當前時間到time.txt上.

如果出現以下問題

crontab: no crontab for hayek - using an empty one

crontab: "/usr/bin/vi" exited with status 1

方法1:editor=vim crontab -e 直接編輯,以後直接crontab -e直接開啟就行。

方法2:export editor=vim

方法3:向cron程序提交乙個crontab檔案之前,首先要設定環境變數editor。cron程序根據它來確定使用哪個編輯器編輯crontab檔案。9 9 %的unix和linux使用者都使用vi,如果你也是這樣,那麼你就編輯$home目錄下的. profile檔案,在其中加入這樣一行:

editor=vi; export editor

crontab的檔案格式

* 第1列分鐘0~59

* 第2列小時0~23(0表示子夜)

* 第3列日1~31

* 第4列月1~12

* 第5列星期0~7(0和7表示星期天)

* 第6列要執行的命令

crontab服務的重啟關閉,開啟

mac系統下

sudo /usr/sbin/cron start

sudo /usr/sbin/cron restart

sudo /usr/sbin/cron stop

ubuntu:

sudo /etc/init.d/cron start

sudo /etc/init.d/cron stop

sudo /etc/init.d/cron restart

參考:以上內容**此篇文章)

另類的定時任務實現)

Mac下使用crontab來實現定時任務

說明 1 linux和mac下操作crontab都是一致的 2 配置檔案都在 etc crontab下,如果沒有就建立。3 測試發現直接使用crontab e命令建立的定時任務是放在臨時資料夾的,重啟會刪除,並且與 etc crontab檔案無關聯。實際操作 crontab的引數 eg 1 bin ...

Mac下使用crontab來實現定時任務

說明 1 linux和mac下操作crontab都是一致的 2 配置檔案都在 etc crontab下,如果沒有就建立。3 測試發現直接使用crontab e命令建立的定時任務是放在臨時資料夾的,重啟會刪除,並且與 etc crontab檔案無關聯。實際操作 檢視 crontab 是否啟動 sudo...

mac 下crontab 無效的解決方案

在mac下使用crontab e編輯crontab,並不儲存,crontab l顯示列表仍然是空的 crontab e crontab no crontab for username using an empty one crontab usr bin vi exited with status 1...