update.shを次のように作成しました。
#!/bin/bash
sudo apt-get update
sudo apt-get upgrade
echo "Updated Successfully!
毎時間このスクリプトを実行するために、次のcrontabジョブを作成しました。
0 * * * * bash /home/ubuntu/update.sh >> /home/ubuntu/cron_test.txt
しかし、echoコマンドのログファイルエントリのみが生成され(1分ごとに実行しようとするため)、私のbashが更新されているという確認はありません。私はWSL2とVMWare Ubuntu端末の両方でこれを試しました。 WSLはエコー実行エントリも記録しません。何が問題なのでしょうか?
ベストアンサー1
2つの質問があります。
これは
sudo
、パスワードの入力を求められ、パスワードは提供されないことを意味します。だからちょうどそこにぶら下がるでしょう。簡単な解決策は、rootを使用するcron
か、sudo crontab -e
rootユーザーにエントリを追加することによって/etc/cron.crontab
。sudo
aptコマンド自体も、実行時にインストールを確認する必要があることを示すメッセージを表示します
apt upgrade
。を実行してこの問題を解決することもできますapt upgrade -y
。
今、上記の「解決策」のどれも良くありません。代わりに、次のいずれかを使用しないでください。無人アップグレードのインストール、これを行うように設計されたツールを使用できます。