T’has preguntat mai per què alguns administradors de sistemes suen fred quan arriba el moment d’actualitzar un servidor? No és per menys: una actualització mal feta pot deixar el servidor fora de servei, amb tot el que això comporta. Però no pateixis, aquí et guio pas a pas perquè et surti bé.
Aquesta guia està pensada per a servidors basats en Debian o Ubuntu (els més habituals). Si fas servir Rocky, Alma o Fedora, les idees són les mateixes, però canvia apt per dnf.
Per què és tan important mantenir el servidor actualitzat?
Imagina el servidor com un cotxe. El pots conduir anys sense fer-li manteniment? Tècnicament sí, però un dia et fallarà quan més el necessitis. Amb els servidors Linux passa el mateix.
Seguretat: la teva primera línia de defensa
Cada dia es descobreixen vulnerabilitats noves. Els atacants no descansen, i tampoc esperen que tu actualitzis el sistema. Cada actualització de seguretat és com posar una tanca nova al voltant de casa teva digital. Sense aquestes actualitzacions, deixes les portes obertes de bat a bat.
Les dades són clares: la majoria de les intrusions aprofiten vulnerabilitats ja conegudes i corregides. Per què? Perquè molts administradors anaven posposant les actualitzacions. No siguis un d’ells.
Rendiment i estabilitat
Les actualitzacions no només tapen forats de seguretat. També milloren el rendiment, optimitzen l’ús dels recursos i corregeixen errors que potser ni sabies que hi eren. És com posar a punt el motor del cotxe: va més suau, més ràpid i gasta menys.
Abans de començar: preparació i còpies de seguretat
Aquí tens la regla d’or que he après després d’anys administrant servidors: mai, mai, mai actualitzis sense una còpia de seguretat. És com saltar amb paracaigudes: pots confiar que s’obrirà, però sempre vols tenir-ne un de reserva.
La importància del snapshot
El snapshot és la teva pòlissa d’assegurança: una fotografia del servidor en un moment concret. Si alguna cosa surt malament durant l’actualització, hi pots tornar com si no hagués passat res. La majoria de proveïdors de cloud (i qualsevol hipervisor com Proxmox o VirtualBox) et permeten fer-ne un amb un clic.
Abans de continuar, confirma al panell del teu proveïdor tres coses: que el snapshot existeix, que té una mida raonable i que la data de creació és recent. Si el teu servidor no és virtual, l’equivalent és una còpia de seguretat completa i verificada (per exemple amb rsync, restic o borg).
Comprova l’estat actual del servidor
Abans de tocar res, has de saber en quin estat està el sistema. És com fer-se una revisió mèdica abans d’una operació. Obre el terminal i apunta aquestes dades, que després et serviran per comparar:
# Estat actual del sistema
hostnamectl
df -h
free -h
# Serveis crítics en marxa
systemctl list-units --type=service --state=running | grep -E '(apache|nginx|mysql|mariadb|postgres|ssh)'
# Nuclis instal·lats
dpkg -l | grep linux-image
hostnamectl et diu la versió del sistema operatiu, df -h l’espai lliure als discos i free -h la memòria. Presta especial atenció als serveis essencials (Apache, Nginx, MySQL/MariaDB, PostgreSQL, SSH…).
Verificació d’espai: no et quedis sense combustible a mig camí
Una de les causes més habituals de fallada durant una actualització és quedar-se sense espai al disc. És com voler instal·lar una aplicació al mòbil quan la memòria és plena: simplement no es pot.
Quant espai necessites?
No hi ha una xifra única, però sí uns mínims raonables. Pensa que durant l’actualització el sistema descarrega els paquets nous, els descomprimeix i els instal·la mentre manté temporalment les versions antigues.
- /boot (on es guarda el nucli): almenys 300 MB lliures. Sembla poc, però cada nucli ocupa uns 100-150 MB i se’n solen conservar diversos.
- / (arrel): com a mínim un 20% lliure.
- /var (registres i memòria cau de paquets): mínim 1-2 GB lliures.
df -h /boot
df -h /
df -h /var
Si algun està per sota d’aquests mínims, atura’t aquí i allibera espai primer.
Neteja preventiva
La bona notícia és que segurament pots recuperar molt d’espai fàcilment:
# Buidar la memòria cau de paquets
sudo apt clean
sudo apt autoclean
# Treure nuclis i dependències antigues
sudo apt autoremove --purge
# Mirar quant ocupen els registres
sudo journalctl --disk-usage
sudo find /var/log -name "*.log" -size +100M 2>/dev/null
apt clean elimina tots els paquets .deb descarregats, i apt autoremove --purge treu els nuclis i dependències que ja no calen (una de les causes més típiques que /boot s’ompli). Si els registres de journalctl ocupen més d’1 GB, redueix-los amb sudo journalctl --vacuum-time=2weeks. Tens més trucs a la guia sobre com netejar Linux a fons.
El procés d’actualització pas a pas
Ara sí, arribem al moment de la veritat. Però tranquil: si has seguit els passos anteriors, tens totes les garanties.
Actualitzar la llista de paquets
El primer pas és refrescar la llista de paquets disponibles. Això no instal·la res, només descarrega la informació de quines versions hi ha:
# Refrescar la llista de paquets
sudo apt update
# Veure què s'actualitzaria
apt list --upgradable
Revisa la llista. Si hi ha algun paquet crític per al teu servei, val la pena mirar què canvia a la versió nova abans de continuar.
upgrade o full-upgrade?
Aquesta és una pregunta que em fan sovint. apt upgrade és l’opció conservadora: actualitza els paquets instal·lats, però no n’elimina cap. És la més segura per a les actualitzacions rutinàries.
# Opció 1: actualització estàndard (recomanada per al dia a dia)
sudo apt upgrade
# Opció 2: actualització completa (per a canvis més grans)
sudo apt full-upgrade
apt full-upgrade és més resolutiva: pot instal·lar paquets nous i eliminar-ne d’altres si cal per completar l’actualització. Fes-la servir per a actualitzacions importants, però amb precaució i havent llegit abans què vol treure.
> Nota: la vella apt-get dist-upgrade fa el mateix que apt full-upgrade. Totes dues funcionen; a scripts és preferible apt-get, i per a l’ús interactiu, apt.
Per a la majoria de casos, comença amb sudo apt upgrade.
Vigila el procés en temps real
Mentre s’executa, no et quedis només mirant passar línies. Obre un altre terminal i executa watch df -h per veure l’espai del disc en viu. Si s’omple perillosament, pots aturar-te a temps.
# Espai en temps real
watch df -h
# Seguir el registre d'instal·lació
tail -f /var/log/apt/term.log
Després de l’actualització: validació i neteja
Enhorabona, l’actualització ha acabat! Però la feina encara no s’ha acabat del tot: ara toca comprovar que tot rutlla.
Neteja final
# Treure paquets orfes que ha deixat l'actualització
sudo apt autoremove --purge
# Veure si queden paquets en estat "residual" (rc)
dpkg -l | grep linux-image | grep '^rc'
# Comprovar l'espai de /boot
df -h /boot
Comprovar els serveis crítics
Aquest és el moment de la veritat. Revisa un per un els serveis essencials:
sudo systemctl status apache2
sudo systemctl status mysql
sudo systemctl status ssh
Si algun no funciona, no entris en pànic. Mira primer els registres amb sudo journalctl -u nom_del_servei. Sovint el problema és una configuració que ha canviat o un mòdul que s’ha de reactivar. I, en el pitjor dels casos, sempre tens el snapshot per tornar enrere.
Actualització del nucli: quan cal reiniciar
Si l’actualització ha portat un nucli nou, has de reiniciar el servidor per fer-lo servir. Compara el nucli en marxa amb els instal·lats:
# Nucli actual
uname -r
# Nuclis instal·lats
dpkg -l | grep linux-image | grep '^ii'
Si uname -r no coincideix amb el més nou de la llista, cal un reinici. Un truc útil: el paquet needrestart (a Debian/Ubuntu) t’avisa de si cal reiniciar i quins serveis convé reiniciar després d’actualitzar biblioteques com libssl.
Reiniciar un servidor de producció no és una decisió a prendre a la lleugera. Planifica-ho en un moment de poc trànsit, avisa els usuaris i executa sudo reboot.
Pla de contingència: què fer si alguna cosa surt malament
Encara que ho hagis fet tot bé, de vegades les coses es torcen (la llei de Murphy aplicada a la informàtica). Però per això vam fer el snapshot, oi?
Restaurar des del snapshot
Si el servidor no arrenca, els serveis no van o alguna cosa ha anat francament malament, i no estàs segur de com arreglar-ho, no t’hi encallis. Vés al panell del proveïdor, tria el snapshot que vas crear al principi i restaura’l. Un cop restaurat, comprova el més bàsic:
# Connectivitat SSH (des de la teva màquina)
ssh usuari@servidor
# Serveis web
curl -I http://localhost
# Errors recents
sudo journalctl -p 3 -xb
Sí, perdràs l’actualització, però recuperaràs un servidor que funciona, que és el més important. Després ja investigaràs què va fallar i ho tornaràs a provar amb més cura.
Revertir un paquet concret
Si el problema és només d’un paquet, pots revertir-lo sense restaurar tot el snapshot. Mira les versions disponibles i instal·la l’anterior:
# Versions disponibles d'un paquet
apt-cache policy nom_paquet
# Tornar a una versió concreta
sudo apt install nom_paquet=versió-prèvia
Això és més quirúrgic, però requereix identificar exactament quin paquet dona guerra.
Actualització interrompuda
Si l’actualització s’ha tallat a mig camí (per exemple, per manca d’espai), allibera espai i completa-la amb:
sudo apt install -f
sudo dpkg --configure -a
Conclusió
Actualitzar un servidor Linux no ha de ser un malson. Amb una bona preparació, comprovacions constants i sempre un pla B a mà, pots mantenir el servidor segur i al dia sense perdre la son.
Recorda: el snapshot és el teu millor amic, l’espai al disc és crític i la validació posterior és tan important com l’actualització mateixa. I, sobretot, no tinguis por d’actualitzar: un servidor desactualitzat és molt més perillós que el risc d’una actualització ben planificada.
Preguntes freqüents
Amb quina freqüència hauria d’actualitzar el servidor? Depèn del tipus d’actualització. Les de seguretat, com més aviat millor (idealment cada setmana). Les generals del sistema, un cop al mes. I les actualitzacions majors de versió (per exemple, de Debian 12 a Debian 13), un o dos cops l’any, sempre provant-les abans en un entorn de proves.
Puc automatitzar-les? Sí, amb el paquet unattended-upgrades pots aplicar automàticament només les actualitzacions de seguretat. Les actualitzacions majors, mai de manera automàtica. I mantingues sempre la supervisió i els snapshots: fins i tot les automàtiques poden fallar.
Què passa si em quedo sense espai durant l’actualització? L’actualització fallarà i el sistema pot quedar en un estat inconsistent. Per això és tan important comprovar l’espai abans. Si passa, allibera espai (registres o paquets antics) i completa l’actualització interrompuda amb sudo apt install -f i sudo dpkg --configure -a.
He d’actualitzar quan el servidor té menys càrrega? Sí. Les actualitzacions poden reiniciar serveis temporalment, i algunes requereixen reiniciar tot el servidor. Planifica-les sempre en finestres de manteniment i avisa els usuaris amb antelació.
Quant triga una actualització típica? Depèn de quants paquets s’actualitzin i de la teva connexió. Una actualització rutinària pot anar de 10 a 30 minuts; una de versió major, diverses hores. Calcula sempre més temps del que creus que necessitaràs.