Suponho que você esteja usando o crontab com um usuário normal, o que significa que ele não pode atualizar / atualizar um sistema sem fornecer um sudo.
Além disso, apt-get update
e apt-get upgrade
solicitarão ao usuário a confirmação, portanto você deve passar essa confirmação antes.
yes | apt-get update
yes | apt-get upgrade
Então, para resolvê-lo, você precisa executar seus comandos com o sudo, mas isso colocará um problema em como fornecer a senha para o sudo.
Além disso
echo "Update am "$(date "+%Y-%m-%d %H:%M:%S") >> /var/log/update.log
está escrevendo em / var / log / ... o que significa que precisa de permissão para fazer aquilo que não é baseado em um usuário normal.
Para resolver isso, você deve executar seu script no cron do root.
sudo crontab -e
irá abrir o arquivo cron root no seu editor padrão.
Adicione a entrada do seu script
0 3 * * * /drives/files/scripts/update.sh
Agora salve e saia.
PS : apenas no caso, certifique-se de dar permissão de execução para o seu script. para fazer isso, execute o comando:
chmod +x /path-to-script