linux 最簡單 設定開機自動啟動/執行 crontab 示範

假設我們有一個 run.sh 檔案,可以將時間輸出到檔案中(ruyut 是筆者的使用者名稱,請切換為自己有的目錄,可以使用 pwd 指令查看當前目錄):
    
#!/bin/bash

cd /home/ruyut
date "+%Y-%m-%d %H:%M:%S" >> date_output.txt
    

註:寫腳本的好習慣就是不要使用相對路徑,不然就是要預先切換到工作目錄,避免不知道到底有沒有執行。

如果想要一開機就執行這個 sh 檔案該怎麼做?可以使用 crontab!

建立 crontab 排程:
    
crontab -e
    

註: 使用什麼身份建立 crontab 就有什麼權限,如果使用 root 建立就是 root 權限

如果是第一次執行會要選取預設的編輯器,預設是使用 nano,筆者倒是比較習慣 vim (2 是 vim 一般版, 3 是 vim 的精簡版),輸入 1, 2, 3, 4 即可
    
crontab -e
no crontab for ruyut - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny
  4. /bin/ed
    

在文件的最下面加上這一行:
    
@reboot /home/ruyut/run.sh
    

意思就是啟動時執行 /home/ruyut/run.sh 這個檔案。

儲存關閉後可以使用下面的指令列出所有排程:
    
crontab -l
    

重新啟動(如果權限不夠就要在前面加上 sudo ):
    
reboot
    

這時候應該就會在剛剛 run.sh 指定的目錄(筆者是 /home/ruyut)下看到 date_output.txt 檔案了!

重點:
請務必要注意路徑,最保險就是設定好絕對路徑,避免找不到輸出的檔案或是排程找不到檔案所以無法執行

補充: 之前筆者一開始寫 crontab 的時候一直不太會用預設的 nano 編輯器,又一直找不到檔案,好煩好煩喔氣氣氣氣,尋找要改為使用 vim 的方法又都很麻煩,直到在虛擬機中撰寫本文時才看到關鍵字,其實要修改預設編輯器很簡單,只要一行指令,就可以重新出現本文一開始的選擇編輯器選項:
    
select-editor

Select an editor.  To change later, run 'select-editor'.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny
  4. /bin/ed

Choose 1-4 [1]: 2
    

留言