表題の通りです。Ubuntu 22.04にて。主に自分用。
(GPT君が作ってくれたんだけど、まとめがてら。技術的な細かい突込みはやめてください。)
スクリプトの準備・作成
まず、ホームディレクトリなどでupdate_and_reboot.sh
を作成。
nano update_and_reboot.sh
スクリプト作成
update_and_reboot.sh
#!/bin/bash
# ログファイルのパス
LOG_FILE="/var/log/update_and_reboot.log"
# 日本時間のタイムスタンプを取得
TIMESTAMP=$(TZ='Asia/Tokyo' date '+%Y-%m-%d %H:%M:%S')
# ログに実行時刻を記録
echo "[$TIMESTAMP] Starting system update..." | tee -a "$LOG_FILE"
# 更新プログラムのインストール
sudo apt update && sudo apt upgrade -y | tee -a "$LOG_FILE"
# 再起動のログを記録
TIMESTAMP=$(TZ='Asia/Tokyo' date '+%Y-%m-%d %H:%M:%S')
echo "[$TIMESTAMP] Rebooting system..." | tee -a "$LOG_FILE"
# システム再起動
sudo reboot
実行権限を付与
chmod +x update_and_reboot.sh
安全なディレクトリに配置
sudo mv update_and_reboot.sh /usr/local/bin/update_and_reboot.sh
cronジョブの設定
cronを編集
sudo crontab -e
エディタは何でも良いです。お好みのエディタでどうぞ。
(ワシはnanoをよく使いますが。)
以下を追加
0 4 * * * /usr/local/bin/update_and_reboot.sh
書き込んだら保存して、終了。
~動作確認~
sudo /usr/local/bin/update_and_reboot.sh
これで一度動作確認を行ってください。
再起動後に下記コマンドを打てば、ちゃんと動作しているか確認できるかと思います。
cat /var/log/update_and_reboot.log
これで毎日4時に、自動で更新・再起動が入るはずです。