Linux

rtcwake 未作為根 cron 作業執行

  • March 3, 2022

手動啟動的這項rtcwake工作可以正常工作:

$ sudo rtcwake -m no -u -t $(date +%s -d 'tomorrow 07:30')

但似乎沒有作為rootcron 作業執行:

$ sudo crontab -l
32 7 * * * rtcwake -m no -u -t $(date +%s -d 'tomorrow 07:30')

如果我用

$ sudo crontab -l
32 7 * * * rtcwake -m no -u -t $(date +%s -d 'tomorrow 07:30') &> /home/me/path/to/dir/crond.log

我得到一個空的日誌文件。並且所有者crond.log是我,而不是root。(**編輯1:**情況並非如此,我的幾個測試錯誤)

這裡的問題到底是什麼?

***編輯 2:*感謝@αғsнιη 的回答,正確的 cronjob 如下(使用創建sudo crontab -e):

$ sudo crontab -l
32 7 * * * /usr/sbin/rtcwake -m no -u -t $(date +\%s -d 'tomorrow 07:30') &> /home/me/path/to/dir/crond.log

關於 cronjob 的兩件事:

  1. %應該轉義\%,因為這是 crontab 的特殊字元並且意味著換行符。
  2. 始終使用完整/絕對路徑編寫命令,因為 crontab 不會讀取您的 shellPATH變數。

引用自:https://unix.stackexchange.com/questions/692754