Se eu entendi sua pergunta corretamente, você pode usar o seguinte:
#!/bin/bash
apt-get update &> update.log
apt-get -y upgrade &> upgrade.log
echo "all done"
Salve este script como run_updates.sh
, torne-o executável com chmod 755 run_updates.sh
e execute-o com sudo ./run_updates.sh
.
Se você quiser salvar todas as saídas em um arquivo, remova o &> updates.log
e &> upgrades.log
do script e execute o script como sudo./run_updates.sh &> run_updates.log
Explicação do script:
-
apt-get update &> update.log
runsapt-get update
e salva a saída emupdate.log
-
apt-get -y upgrade &> upgrade.log
runsapt-get upgrade
e salva a saída emupgrade.log
. O-y
impede o apt de pedir para continuar (assume "sim")
Uma observação sobre redirecionamentos:
Você pode usar os redirecionamentos abaixo para "enviar" a saída de um comando ou script para um arquivo.
-
&>
redireciona STDOUT e STDERR -
>
ou1>
redireciona STDOUT -
2>
redireciona STDERR
Uma nota sobre o sudo:
Esta é provavelmente a razão pela qual você tem erros. Ao executar um comando que precisa de sudo
em um script, é uma boa ideia colocar o comando sem sudo
no script e executar o script com sudo
. Caso contrário, você teria que dar sua senha sudo para o script de alguma forma, o que é ruim.
Editar:
No código a seguir, a saída de ambos os comandos apt é redirecionada para update.log
. O% >
( >>
) duplo é usado para anexar dados a um arquivo (em vez de substituí-lo)
#!/bin/bash
apt-get update &> update.log
apt-get -y upgrade &>> update.log
echo "all done"