GNU/Linux >> Tutoriels Linux >  >> Linux

Journal Crontab :comment enregistrer la sortie de mon script Cron

Question :J'ai créé un script shell backup.sh et l'ai ajouté à ma crontab pour l'exécuter quotidiennement. Comment puis-je vérifier si le travail de script cron de sauvegarde s'est exécuté avec succès ? De plus, j'ai plusieurs instructions d'écho dans mon script shell backup.sh. Comment enregistrer la sortie de mon script dans un fichier journal lorsqu'il est exécuté en tant que tâche cron ?

Réponse :Disons que vous avez ajouté le backup.sh à votre crontab comme indiqué ci-dessous pour l'exécuter à minuit tous les jours.

$ crontab -e
59 23 * * * /home/john/bin/backup.sh

Pour vérifier si cette tâche a été exécutée avec succès ou non, consultez le fichier /var/log/cron, qui contient des informations sur toutes les tâches cron exécutées sur votre système. Comme vous le voyez dans la sortie suivante, la tâche cron de John a été exécutée avec succès.

$ tail /var/log/cron
Oct  8 22:00:00 dev-db crond[18340]: (root) CMD (/bin/sh /home/root/bin/system_check &)
Oct  8 23:00:00 dev-db crond[20348]: (oracle) CMD (/bin/sh /home/oracle/bin/cleanup.sh &)
Oct  8 23:59:00 dev-db crond[20399]: (john) CMD (/bin/sh /home/john/bin/backup.sh &)

Le journal Cron contient les informations suivantes :

  • Horodatage :la date et l'heure d'exécution de la tâche cron
  • Nom d'hôte :nom d'hôte du serveur (par exemple, dev-db)
  • Le nom du démon cron et le PID. Par exemple, crond[20399]
  • Nom d'utilisateur - Le nom d'utilisateur sous lequel cette tâche cron a été exécutée. Par exemple, jean.
  • CMD – Tout ce qui suit est la vraie commande qui a été exécutée à ce moment-là.

S'il existe des instructions d'écho dans le fichier backup.sh, vous souhaiterez peut-être les enregistrer dans un fichier. En général, si le script cron backup.sh génère une sortie (y compris des erreurs), vous souhaiterez peut-être les consigner dans un fichier journal. Pour ce faire, modifiez l'entrée crontab et ajoutez la sortie et la redirection d'erreur comme indiqué ci-dessous.

$ crontab -e
59 23 * * * /home/john/bin/backup.sh > /home/john/logs/backup.log 2>&1

Dans ce qui précède :

  • > /home/john/logs/backup.log indique que la sortie standard du script backup.sh sera redirigée vers le fichier backup.log.
  • 2>&1 indique que l'erreur standard (2>) est redirigée vers le même descripteur de fichier pointé par la sortie standard (&1).
  • Ainsi, la sortie standard et l'erreur seront redirigées vers /home/john/logs/backup.log

Linux
  1. Où est le journal cron/crontab ? / Comment activer le Cron Log ?

  2. Comment créer un script de démarrage à l'aide de Crontab dans Lubuntu Linux

  3. Comment affecter la sortie d'une commande à une variable Shell ?

  4. Comment mettre en surbrillance un mot dans la sortie de "cat" ? ?

  5. Comment planifier des tâches Cron avec Crontab

Comment automatiser des tâches sous Linux à l'aide de Crontab

Comment configurer le travail cron pour exécuter un script PHP dans cPanel ?

Comment vérifier si une tâche Cron a été exécutée (journal Crontab)

Python - Superviseur comment enregistrer la sortie standard -

Comment interpréter la sortie de netstat -o / netstat --timers

Comment copier la sortie du terminal ?