web-dev-qa-db-fra.com

La crontab racine ne fonctionne pas

Pour une raison quelconque, ma racine crontab ne semble pas fonctionner.

Essayer de redémarrer l'appareil tous les soirs à minuit.

Devrait être le suivant en tant que root:

crontab -e

Puis ajouter:

0 0 * * * /sbin/shutdown -r now

Lorsque je teste certaines valeurs à l’heure actuelle, rien ne se passe. J'ai installé NTP et je me suis assuré que le fuseau horaire est correct. Je spécifie également en utilisant l'horloge de 24 heures. Par exemple, pour tester cette ligne maintenant (17h35), j'essaie d'entrer les informations suivantes:

36 17 * * * /sbin/shutdown -r now

J'ai vérifié l'heure avec la date -R. Le temps d'exécution de la crontab va et vient et le système ne redémarre pas. Qu'est-ce que j'oublie ici?

9
Atomiklan

J'ai trois suggestions de solutions pour vous.

  1. Invoquer la crontab avec crontab -e -u root

  2. Assurez-vous que vous avez une ligne vide à la fin du fichier cronjob, ce qui signifie que chaque ligne se termine par une nouvelle ligne.

  3. Vous devrez peut-être rediriger la sortie vers devnull: shutdown -r now > /dev/null

Voici deux pages Web utiles pour les tâches cron:

Testeur CRON

Générateur CRON

Vous pouvez également gérer les tâches cron parfaitement avec webmin .

En dehors de cela, vous avez au moins deux autres moyens de redémarrer votre ordinateur à minuit.

La première consiste à exécuter la commande shutdown en tant que script automatiquement à la connexion, mais avec une heure spécifique en tant que paramètre au lieu de "maintenant":

shutdown -r 00:00

Cependant, cela produira un message diffusé indiquant l’arrêt prochain à chaque connexion (ce n’est peut-être pas une mauvaise chose du tout). Vous pouvez également faire en sorte que cela soit exécuté au moment du démarrage en ajoutant le script dans init.d, tout en générant le message.

Une autre consiste à utiliser atcommand:

at 0am

Entrez la commande shutdown -r now et enregistrez-la avec ctrl + d ou créez un script pour la commande et effectuez les actions suivantes:

at -f restart_script.sh 0am

J'espère que cela vous aidera à obtenir le résultat souhaité.

10
Ahti Komu

Les tâches System Cron sont répertoriées dans le fichier/etc/crontab. Par conséquent, la modification directe de ce fichier vous aidera à exécuter la commande de redémarrage en tant que root.

donc,

$ Sudo vi /etc/crontab

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR Sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
  23 20 *  *  *  root  shutdown  -r  now

assurez-vous de vérifier le fichier journal Cron après avoir modifié la crontab, car cela vous permettra de savoir si le cron a été installé avec succès.

Je l'ai testé et cela a fonctionné pour moi. Redémarrage de mon système à 20h23

Bonne chance!

0
rulebreaker4