Ubuntuで自動アップデート&再起動を設定する
Ubuntuをサーバー用途に使うときに、自動アップデート、再起動を設定したいと思ったのですが
結構苦労したので、ここに書き残そうと思います。
実行環境:Ubuntu20.04
最初に
アップデートを実行。
sudo apt-get update
大抵の場合は標準でunattended-upgradesというパッケージが入っていると思いますが、念のため
sudo apt-get install unattended-upgrades
自動アップデートの設定
以下のファイルを編集します。
20auto-upgrades
sudo nano /etc/apt/apt.conf.d/20auto-upgrades
このように設定します。
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";
・APT::Periodic::Update-Package-Lists “1”;
これはパッケージリストの更新を指定します。この場合は1日おきに設定しています。
・APT::Periodic::Download-Upgradeable-Packages “1”;
アップグレード可能なパッケージのダウンロードを許可するか指定します。”1″で許可します。
・APT::Periodic::AutocleanInterval “7”;
自動で不要なパッケージを削除する頻度を指定します。この場合は1週間おきに設定しています。
・APT::Periodic::Unattended-Upgrade “1”;
自動アップグレードを実行するかを指定します。”1″で許可します。
その他の設定を50unattended-upgradesというファイルで設定します。
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
ここではアップグレード元について設定します。
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}";
"${distro_id}:${distro_codename}-security";
// Extended Security Maintenance; doesn't necessarily exist for
// every release and this system may not have it installed, but if
// available, the policy for updates is such that unattended-upgrades
// should also install from here by default.
"${distro_id}ESMApps:${distro_codename}-apps-security";
"${distro_id}ESM:${distro_codename}-infra-security";
"${distro_id}:${distro_codename}-updates";
// "${distro_id}:${distro_codename}-proposed";
// "${distro_id}:${distro_codename}-backports";
};
各項目は必要に応じて、コメントアウトし、有効化することができます。
お好みの設定をお願いします。
次々行きますよー!
Unattended-Upgrade::DevRelease "auto";
//"auto"の場合、開発板からのアップグレードを自動的に行います。
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";
Unattended-Upgrade::Remove-New-Unused-Dependencies "true";
Unattended-Upgrade::Remove-Unused-Dependencies "true";
//不要なパッケージを削除したいなら上記の3つを設定。
Unattended-Upgrade::Automatic-Reboot "true";
//アップグレード後の自動再起動を有効にするかを設定。
Unattended-Upgrade::Automatic-Reboot-WithUsers "true";
//ユーザーがログインしていても自動再起動を行うかを設定。
Unattended-Upgrade::Automatic-Reboot-Time "01:30";
//自動再起動を行う時間を設定。
cronによる定期実行
私の環境の場合は、なぜか自動再起動だけができなかったので、cronで代用しようと思います。
sudo crontab -e
そして以下の内容を設定します。
30 0 * * * /sbin/shutdown -r now
//毎日00:30分に自動再起動する。
0 0 * * * sudo /usr/bin/unattended-upgrade -v
//念のため自動アップデートも設定。
これを保存すれば、自動アップデート&再起動ができるはず!🙏