Notez que la saisie de votre mot de passe en texte clair dans un fichier texte n'est pas une bonne idée, il est donc préférable d'exécuter ce travail en tant que root dès le départ. Habituellement, plutôt que de modifier la crontab de root via la crontab
commande, qui laisse les entrées dans /var/spool/cron/crontabs
un emplacement quelque peu cryptique, je préfère les entrer explicitement dans /etc/cron.d
. Les entrées dans cron.d sont exécutées en tant qu'entrées crontab système, sont traitées comme des fichiers de configuration afin qu'elles survivent aux redémarrages, mises à jour et mises à niveau du système, et vous pouvez spécifier explicitement l'utilisateur en cours d'exécution:
echo "0 3 * * * root /sbin/shutdown -h 5 'System will reboot in 5 minutes'" | sudo tee /etc/cron.d/reboot-at-3-am
Si vous n'avez pas besoin d'une heure spécifique, mais que vous voulez plutôt que le système redémarre une fois par jour, ajoutez un exécutable ou un script /etc/cron.daily
et il s'exécutera automatiquement à une heure prédéterminée (heure système par défaut à 6h25):
echo "/sbin/shutdown -h 5 'System will reboot in 5 minutes'" | sudo tee /etc/cron.daily/reboot-me
Notez que plutôt que de simplement redémarrer le système sans avertissement, je mets un avertissement de 5 minutes, donc si quelqu'un est connecté, il a la possibilité d'enregistrer son travail, ou même d'interrompre l'arrêt avec sudo shutdown -c
, plutôt que de faire tirer le système hors d'eux. Vous pouvez les ajuster en conséquence, si vous souhaitez donner un avertissement plus ample (par exemple, utilisez shutdown -h 60
et exécutez la commande à 02h00 et vous donnerez aux utilisateurs un avertissement généreux d'une heure).
Ceci est basé sur mon expérience passée; à un moment donné, vous serez connecté en travaillant lorsque l'entrée crontab s'exécute, et si elle redémarre simplement sans avertissement, vous serez un panda très triste.
echo $PASSWD