crontabタスクを使用して単純な「apt-getアップデートとアップグレード」スクリプトをどのように実行できますか?

crontabタスクを使用して単純な「apt-getアップデートとアップグレード」スクリプトをどのように実行できますか?

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つの質問があります。

  1. これはsudo、パスワードの入力を求められ、パスワードは提供されないことを意味します。だからちょうどそこにぶら下がるでしょう。簡単な解決策は、rootを使用するcronか、sudo crontab -erootユーザーにエントリを追加することによって/etc/cron.crontabsudo

  2. aptコマンド自体も、実行時にインストールを確認する必要があることを示すメッセージを表示しますapt upgrade。を実行してこの問題を解決することもできますapt upgrade -y

今、上記の「解決策」のどれも良くありません。代わりに、次のいずれかを使用しないでください。無人アップグレードのインストール、これを行うように設計されたツールを使用できます。

おすすめ記事