Shell-Script
用於 cron 作業的 shell 腳本
我剛剛在 cpanel 中設置了一個 cron-job,但是雖然它似乎正在執行腳本,但它並沒有按預期工作。
這是 cpanel 中的 cron 作業命令:
/bin/sh /home/my-username/cronjobs/sedclearmalw.sh
這是腳本的內容:
#!/bin/bash cd ../public_html/ grep -rl '_0xaae8' . | xargs sed -i 's/var\s_0xaae8.*//g'
我相信 cd 命令應該是正確的,因為它需要返回一個目錄然後輸入 public_html,但是第二個命令似乎是問題所在。我已經嘗試通過 ssh 執行它,(bash sedclearmalw.sh)它似乎執行了大約 15 秒,但它沒有完成它的工作,因為我使用以下命令進行了檢查:
grep -rl '_0xaae8'
它返回 1 個包含 _0xaae8 的文件。任何幫助都將不勝感激,它必須很簡單,因為我知道 shell 腳本中的上述命令在通過 ssh(而不是通過腳本)執行時可以正常工作。
問題是由於使用了相對路徑。當
cron
執行一個預定的作業時,它使用所有者的主目錄作為它的工作目錄,例如,如果我以 root 使用者的身份安排一個作業,它的工作目錄將是/root/
(在 Cent OS 系統上)。您應該在
cd
命令中指定絕對路徑。如果您沒有在腳本中執行任何其他命令,則可以在一行中執行所有命令:grep -rl '_0xaae8' /full/path/to/public_html/ | xargs sed -i 's/var\s_0xaae8.*//g'