Soy un poco nuevo en Linux y acabo de aprender a programar tareas con cron. Tengo este pequeño script de shell que he estado usando manualmente hasta ahora:
sudo apt-get check && sudo apt-get update && sudo apt-get upgrade && sudo apt-get autoremove && sudo apt-get autoclean
Ahora quiero programarlo usando cron para no hacerlo manualmente todos los días, pero parece que no puedo hacerlo. Supongo que es porque requiere mi contraseña de sudo para poder continuar. ¿Hay alguna manera de hacer que esto funcione sin aceptar automáticamente las actualizaciones, etc.?
Respuesta1
Es una mejor idea utilizar "actualizaciones desatendidas".
Su propósito es mantener la computadora actualizada con las últimas actualizaciones de seguridad (y otras) automáticamente.[1]
Instalar:
sudo apt install unattended-upgrades
Lea más sobre cómo hacerlo funcionar:aquí.
Para responder a su pregunta, puede editar /etc/crontab
el archivo y ejecutar sus comandos usando root
el usuario sin la necesidad de usarlo sudo
en su propio archivo "crontab".
nano /etc/crontab
y agrega una línea como:
45 21 * * * root apt-get update > /home/ravexina/out.log
que se ejecuta apt-get update
usando root
el usuario a las "21:45" todas las noches y registra la salida en /home/ravexina/out.log
.