Files

145 lines
2.9 KiB
Markdown
Raw Permalink Normal View History

2025-12-19 15:08:43 +01:00
# Unattended Updates for Ubuntu 24.04 Server
[![OS](https://img.shields.io/badge/ubuntu-24.04-E95420)](#)
[![Shell](https://img.shields.io/badge/shell-bash-121011)](#)
[![Feature](https://img.shields.io/badge/feature-unattended_updates-0078D7)](#)
[![License](https://img.shields.io/badge/License-MIT-green)](./LICENSE)
Enable unattended updates on Ubuntu 24.04 server.
This isn't a demo — it's a deployment.
Security updates happen weekly — automatically and quietly.
## Why this installer exists
Servers fail when patches are forgotten. Automated updates remove that risk.
## What this installer does
✔ Applies weekly security fixes
✔ Handles system package upgrades
✔ Runs without user sessions
✔ No interaction required
## What this installer does *NOT* do
It wont stop you from running the script without reading the documentation like theres no tomorrow.
Skip the README, and whatever happens next is your headache, not a bug report.
---
## 1. Prepare the system
```
sudo apt update -y
```
## 2. Download the installer
```
git clone https://git.x-files.dk/server/auto-update-ubuntu.git
```
```
cd auto-update-ubuntu
```
## 3. Run the installer
```
sudo ./auto-update-ubuntu
```
## Automatic Defaults
| Setting | Enabled |
|---|---|
| Security & package upgrades | ✔ |
| Weekly unattended execution | ✔ Sundays @ 04:00 |
| Interactive prompts | ❌ None — unattended mode |
---
## Cron Job Location (Important)
This script does **not** create a user cron via `crontab -e`.
Instead, it deploys a rootlevel update scheduler here:
```
/etc/cron.d/updatesystem
```
Meaning:
✔ runs as **root**
✔ independent of user accounts
✔ persistent across reboots
✔ zero interactive maintenance needed
Modify schedule:
```
sudo nano /etc/cron.d/updatesystem
```
---
## Optional Features (toggle inside script)
| Feature | Default | Enable by uncommenting |
|---|---|---|
| Auto-remove unused packages | ✘ | `Remove-Unused-Dependencies = true` |
| Auto-reboot if required | ✘ | `Automatic-Reboot = true` |
| Reboot even with logged-in users | ✘ | `Automatic-Reboot-WithUsers = true` |
Reference inside script:
```
# sed -i '/Remove-Unused-Dependencies/ s/^\/\/\s*//' "$config2"
# sed -i '/Automatic-Reboot/ s/^\/\/\s*//' "$config2"
# sed -i '/Automatic-Reboot-WithUsers/ s/^\/\/\s*//' "$config2"
```
---
## Verify Status
```
systemctl status unattended-upgrades
journalctl -u unattended-upgrades -f
```
---
## Logs
```
/var/log/unattended-upgrades/
/var/log/apt/history.log
```
Latest upgrade entries:
```
grep "Packages that were upgraded" /var/log/unattended-upgrades/unattended-upgrades.log
```
---
### Reboot Check
```
/var/run/reboot-required
```
Exists → reboot recommended (optional autoreboot available)
---
### More Information
More guides and documentation can be found on [wiki.x-files.dk](https://wiki.x-files.dk)
---
### License
Licensed under the [MIT License](./LICENSE).
---