Para atualizar um sistema Debian é tão simples como executar o comando abaixo como root:
apt-get update && apt-get upgrade
Caso tenha uma conta com sudo, basta:
sudo apt-get update && sudo apt-get upgrade
Este comando no entanto é interativo. Pode ser automatizado de um processo de execução manual para rodar como um cron job. Abaixo, presumirei que está logado como root.
Execute o comando:
crontab -e
Como um exemplo, iremos atualizar os sistemas as 2 da manhã. (Atenção que esta execução irá falhar. Ver abaixo como solucionar e qual problema ocorrerá);
00 02 * * * apt-get update 2>&1 && apt-get -y upgrade 2>&1
Um processo típico de atualização exige a confirmação da transação antes de executar. Por isto, no cron, o upgrade precisa ser não interativo. Isto foi feito utilizando o parâmetro -y, assumindo sim para todas as questões.
As 2 da manhã, executado o comando, teremos o seguinte erro:
debconf: unable to initialize frontend: Dialog debconf: (TERM is not set, so the dialog frontend is not usable.) debconf: falling back to frontend: Readline debconf: unable to initialize frontend: Readline debconf: (This frontend requires a controlling tty.) debconf: falling back to frontend: Teletype dpkg-preconfigure:unable to re-open stdin: Fetched 49.5 MB in 17s (2,840 kB/s) dpkg: warning: 'ldconfig' not found in PATH or not executable dpkg: warning: 'start-stop-daemon' not found in PATH or not executable dpkg: error: 2 expected programs not found in PATH or not executable Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin E: Sub-process /usr/bin/dpkg returned an error code (2)
Como podemos ver, há 2 problemas. O primeiro, um front-end é experado e não pode ser encontrado. O segundo, o PATH de localização dos comandos não pode ser corretamente configurado.
Para corrigir os problemas, reexecute o comando crontab -e e insira as seguintes linhas para configurar corretamente o ambiente.
DEBIAN_FRONTEND=noninteractive PATH=/usr/sbin:/usr/bin:/sbin:/bin 00 02 * * * apt-get update 2>&1 && apt-get -y upgrade 2>&1
Com isto, o processo de atualização do sistema estará automatizado, economizando tempo ao mesmo tempo que mantendo o sistema atualizado e protegido com as últimas atualizações de segurança.