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
//念のため自動アップデートも設定。

これを保存すれば、自動アップデート&再起動ができるはず!🙏

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です