Ambiente Utilizado: Ubuntu Nuvem disponível aqui
cat << '_EOF' > /root/ubuntu-upgrade.sh
#!/bin/bash
# Efetua a atualização do ubuntu de forma automática
#
# 02/Mar/2022 - [email protected] - Implementação Inicial
#
export PATH="/usr/sbin:/usr/bin:$HOME/bin"
#Se este script já estiver rodando então não faça nada
pidof -x -o %PPID $0 > /dev/null && echo "Script $0 ainda em execução. Saindo agora..." && exit
# Definição de algumas variáveis globais
#
BASENAME=`basename $0 .Sh`
DIRNAME=`dirname $0`
# Data e Hora Local
DATAHORA=`date +%Y%m%d-%H%M%S`
# Dia da semana (dom, seg, ...)
DDS=`date +%a`
# Obter o hostname
HOSTNAME=`hostname -f`
# IP do Servidor (eth0 ou ens192)
IP=`hostname --all-ip-addresses | awk '{ print $1 }'`
# Gerar nome de arquivo temporário
#FILE_LOG=$(mktemp -d -t $BASENAME-log-XXXXXXXXXX)
FILE_LOG="/tmp/$BASENAME.log"
# Habitila o Cancelamento através do ^C, etc..
# Mais em http://www.ibm.com/developerworks/aix/library/au-usingtraps/
trap _abort 1 2 3 15
#------------------------------------------
# Informa sobre o Cancelamento pelo Usuário
_abort()
{ # BEGIN _abort
echo "!!! Rotina $0 CANCELADA por usuário.">&2
exit 1
} # END _abort
{
# Mostra data/hora de início
echo "Inicio da Execução: `date`"
echo -e "
========== Variaveis GLOBAIS setadas ===========================
SCRIPTNAME......: [$0]
BASENAME........: [$BASENAME]
DIRNAME.........: [$DIRNAME]
HOSTNAME........: [$HOSTNAME]
IP..............: [$IP]
DATAHORA........: [$DATAHORA]
FILE_LOG........: [$FILE_LOG]
================================================================
"
# https://www.cyberciti.biz/faq/explain-debian_frontend-apt-get-variable-for-ubuntu-debian/
export NEEDRESTART_MODE=a
export DEBIAN_FRONTEND=noninteractive
## Questions that you really, really need to see (or else). ##
export DEBIAN_PRIORITY=critical
echo "========== apt-get update ================================================="
apt-get -qy update
echo "========== apt-get upgrade -y ============================================="
apt-get -qy upgrade -o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold"
echo "========== apt-get dist-upgrade -y ========================================"
apt-get -qy dist-upgrade
echo "========== apt-get autoremove -y =========================================="
apt-get -qy autoremove
echo "========== apt-get clean all =============================================="
apt-get -qy clean all
echo "==========================================================================="
# Mostra data/hora de fim
echo "END: `date`"
} 2>&1 | tee ${FILE_LOG}
_EOF
# Tornar executável
chmod +x /root/ubuntu-upgrade.sh
(crontab -l ; echo "0 3 * * * /root/ubuntu-upgrade.sh >/dev/null 2>&1") | crontab -
crontab -l
0 3 * * * /root/ubuntu-upgrade.sh >/dev/null 2>&1