Linux
我無法使用 sudo 將作業回顯到 root 的 crontab - shell 掛起
我目前正在研究 bash 腳本,它將向 root 的 crontab 添加作業。我正在嘗試使用命令來實現它:
sudo crontab -e -u root | { cat; echo "@reboot /home/$CURRENT_USER/scripts/reboot.sh"; } | crontab -
我正在 Ubuntu Server 18.04 的 shell 中測試此命令,並且在輸入 sudo shell 的密碼後立即完全掛起。我已經測試過幾次了。伺服器資源正常,建立新的 ssh 連接後一切正常。
請幫助我理解這個命令有什麼問題以及我應該怎麼做才能讓它向根 crontab 寫入一些東西(sudo su 不起作用,因為創建了新的 shell,它會停止腳本)。
crontab -e
呼叫編輯器。編輯器的輸出轉到cat
命令,但(充其量)它正在等待您編輯文件。你可能應該做這樣的事情
job="@reboot /home/$CURRENT_USER/scripts/reboot.sh" tab="$(crontab -l)" { echo "$tab" | grep -vxF -e "$job"; echo "$job"; } | crontab
如果程式碼片段尚未以 root 身份執行,請將動詞的兩個實例更改
crontab
為sudo crontab -u root
您不必使用 crontab 將條目添加到 cron。
也許是這樣的:
echo "59 23 * * * /home/$CURRENT_USER/scripts/reboot.sh" | sudo tee -a /var/spool/cron/root
cron 將自動獲取更改。
使用者 crontab 文件只是一個標准文本文件。根據需要對其進行操作,cron 將獲取更改。