概要
SPO GUILD JAPANのオペレーターが同じSPO GUILD JAPANのオペレーターのために作成したUbuntu OSのシステムパッケージを最新に保つためのスクリプトです。
SPOの皆さんはどうしてもノードの保守にかかりっきりになり、OSやインストールされているパッケージのセキュリティパッチなどは後手後手になりがちかと思います。しかし、現実はほぼ毎日のようにパッチが配布されているような状況です。そこでコマンド1つで簡単に済ませられればそれほど苦にならないのでは?という思いをスクリプトに込めました。
どのような違いが?
Ubuntuのパッチを当てるために最小の構成のコマンドは、
sudo apt update -y && sudo apt upgrade -y
かと思いますが、実はマシンの再起動が必要かどうかをチェックしたり、クリーンアップなど不要なファイルの削除などが抜けています。それを全てしようとすると結構なコマンドを打つ事に…
このスクリプトではそれらを自動で判断し、随時確認を取りながらアップデートを進めていきます。覚えるコマンドは以下だけです。
sudo check-update
インストール方法
sudo wget https://e-frontier.systems/cardano/check-update/check-update.sh -O /usr/local/bin/check-update
sudo chmod +x /usr/local/bin/check-update
※ wgetでエラーになる場合は先に以下を実行してください。
sudo apt install -y wget
オプション
更新後に再起動が必要な際に、再起動をしますか?とインタラクティブに表示するオプションです。
sudo wget https://e-frontier.systems/cardano/check-update/update-reboot -O /usr/local/bin/update-reboot
sudo chmod +x /usr/local/bin/update-reboot
実行方法
sudo check-update
このスクリプトの動作は以下の通りです。
- sudo(root) 権限で起動されているか確認
- 自スクリプトのアップデート確認
- システムアップデートの確認(apt update -y を実行)
- アップデート内容の確認(apt-get -s upgrade -V を実行)
- アップデートを行うか確認メッセージを表示
- アップデートを実行(apt -y upgrade を実行)
- クリーンアップ(apt -y autoremove と apt -y clean を実行)
- OS再起動が必要かどうかを確認(/var/run/boot-required があるかどうかで判断)
- 再起動をおこなうかどうか確認メッセージを表示
- 再起動をおこなう場合はノードをストップ(systemctl stop cardano-node を実行)
- システム再起動を実行(reboot を実行)