Comment exécuter plusieurs commandes dans un travail cron

Comment exécuter plusieurs commandes dans un travail cron

Crontab est un utilitaire pour exécuter des tâches planifiées à intervalles réguliers sur Unix-Linux Systems. Il nous permet de planifier plusieurs travaux CRON à fonctionner immédiatement. Nous pouvons planifier une commande ou un script shell pour pouvoir être exécuté sur le terminal. Chaque emploi prévu à Crontab est séparé par une nouvelle ligne. Nous pouvons également définir plusieurs commandes ou scripts dans un seul travail cron pour exécuter un par un.

Comment séparer deux commandes dans Linux

Vous pouvez séparer deux commandes ou plus en utilisant des semicolons (;), des opérateurs logiques et (&&), ou logiques ou (||). Lequel de ces opérateurs que nous utilisons dépend totalement des exigences. Voici la compréhension de base de l'utilisation de ces opérateurs.

  1. Semicolon (;): est utilisé pour séparer plusieurs commandes. Cela exécute toutes les commandes sans vérifier l'état de sortie des commandes précédentes.
    Command_1; Command_2; Command_n 
  2. Logique et (&&): est utilisé pour séparer les commandes lorsque nous voulons exécuter la commande suivante uniquement si la commande précédente a été exécutée avec succès avec le statut de sortie 0.
    Command_1 && command_2 && command_n 
  3. Logique ou (||): est utilisé pour séparer les commandes lorsque nous voulons exécuter la commande suivante uniquement si la commande précédente a échoué avec un statut de sortie non 0.
    Command_1 || Command_2 || Command_n 

Comment planifier un travail cron

Tout d'abord, passez à l'utilisateur à partir de laquelle vous souhaitez exécuter un travail cron. Ensuite, ouvrez l'éditeur Crontab en exécutant la commande suivante.

crontab -e  

Ensuite, vous ajoutez une entrée de travail Cron au fichier comme ci-dessous:

Commandes Crontab séparées avec logique et

Exécution de plusieurs commandes dans un travail Single Cron

Discutons des exemples réels de l'exécution de plusieurs commandes avec Crontab avec des séparations différentes de 2.

  1. Utilisation du point-virgule (;)
  2. Nous pouvons séparer deux commandes ou plus avec des demi-colons, qui ne nécessitent pas de vérifier l'état de sortie de la commande précédente. Par exemple, vous devez modifier l'autorisation de tous les fichiers en 777, mais vous devez définir 777 pour le répertoire des journaux.

    0 2 * * * CHMOD -R 755 / VAR / WWW / MYAPP; CHMOD -R 777 / VAR / WWW / MYAPP / LOGS
    10 2 * * * CHMOD -R 755 / VAR / WWW / MYAPP; CHMOD -R 777 / VAR / WWW / MYAPP / LOGS

    Commandes de crontab séparées avec des demi-colonies (;)

  3. Utilisation logique et (&&)
  4. Utilisez cet opérateur, où vous souhaitez exécuter la commande suivante uniquement si le précédent est exécuté avec succès (statut de sortie 0). Par exemple, vous souhaitez exécuter la sauvegarde.sh après avoir réussi à passer à un répertoire / sauvegarde.

    0 2 * * * CD / BACKUP && BASH BACKUP.shot
    10 2 * * * CD / BACKUP && BASH BACKUP.shot

    Commandes Crontab séparées avec logique et

  5. Utilisation logique ou (||)
  6. Utilisez l'opérateur logique ou (||), lorsque vous souhaitez exécuter la commande suivante uniquement si le précédent est échoué (Exit Status non 0). Par exemple, vous souhaitez afficher un message ou envoyer un e-mail si le fichier de sauvegarde n'est pas trouvé.

    0 2 * * * [-f / sauvegarde / mydb-'date +% f '.SQL] || ECHO "Le fichier de sauvegarde d'aujourd'hui n'est pas trouvé"
    10 2 * * * [-f / sauvegarde / mydb-'date +% f '.SQL] || ECHO "Le fichier de sauvegarde d'aujourd'hui n'est pas trouvé"
    Les commandes Crontab sont séparées de logique et

Conclusion

Dans cet article de blog, vous avez appris à exécuter plusieurs commandes dans une seule entrée de travail Cron. A également discuté de diverses options pour séparer les commandes. L'article vous fournit les détails de base sur chaque séparateur utilisé pour séparer les commandes.