Ubuntu
apt-get purge 不適用於 cron
我看到 cron 執行腳本時出現了一些奇怪的行為,我不確定發生了什麼。該腳本看起來像是要刪除包,但最後只是掛起,從不做任何事情。
這是cronjob。
06 15 * * * root /myscript.sh > /tmp/script.log 2&>1
這是腳本的(簡化版本)。
#!/bin/bash PACKAGES_TO_PURGE="htop" if [ -n "$PACKAGES_TO_PURGE" ]; then echo "Purging $PACKAGES_TO_PURGE" echo #sudo apt-get purge -y $PACKAGES_TO_PURGE apt-get purge -y $PACKAGES_TO_PURGE echo "Done" echo else echo "Nothing to purge" fi
這是日誌文件的輸出。
0 upgraded, 0 newly installed, 1 to remove and 62 not upgraded. After this operation, 188 kB disk space will be freed. Done
手動執行這個腳本是可行的,我只遇到了用 cron 執行它的問題,所以我不確定這是什麼問題。
如果我
sudo
在 apt-get 命令中添加一個,我什至可以讓這個腳本工作。我在想有一些容易被我忽略的東西,但沒有什麼東西可以跳出來。
看看這篇文章中的答案;有人試圖
apt-get upgrade
從 cron 中創建一個並遇到類似的問題。看來您需要設置 PATH 環境變數才能使 apt 工作。例如:
PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
我在嘗試在 crontab 中執行我的腳本時遇到了類似的問題。我在腳本中使用 apt-get update 自動更新。我需要將使用命令 $PATH 找到的路徑添加到我的腳本中:
#!/bin/bash PATH=/usr/lib64/ccache:usr/local/bin:/bin:/usr/local/sbin:/usr/sbin:home/learner2/.local/bin:/home/learner2/bin apt-get -y update
之後我的腳本與 crontab 一起工作。