Linux

Comment exécuter un script toutes les secondes sous Linux ?

Pour exécuter des scripts ou des commandes automatiquement sur un système Linux, il existe plusieurs méthodes efficaces. Cet article explore en détail comment exécuter un script toutes les secondes sur Linux en utilisant différentes techniques. Nous aborderons des solutions comme l’utilisation de la commande watch, des boucles dans un script shell, ainsi que le planificateur de tâches cron.

Utilisation de la commande Watch

La commande watch est un outil puissant qui permet de répéter l’exécution d’une commande ou d’un script à intervalles réguliers. Par défaut, watch exécute la commande toutes les 2 secondes, mais cet intervalle peut être modifié. Suivez ces étapes pour l’utiliser :

  1. Ouvrez un terminal sur votre système Linux.
  2. Saisissez la commande suivante :
  3. watch -n 1 ./mon_script.sh
  4. Ceci exécutera mon_script.sh toutes les secondes. Assurez-vous que le script est exécutable ; sinon, donnez-lui les permissions nécessaires avec chmod +x mon_script.sh.

Pour quitter la commande watch, vous pouvez appuyer sur Ctrl+C.

Création d’une boucle dans un script Bash

Une autre méthode pour exécuter un script à des intervalles fixes est d’utiliser une boucle dans un script Bash. Voici comment procéder :

  1. Créez un nouveau fichier de script, par exemple loop_script.sh :
  2. nano loop_script.sh
  3. Ajoutez le code suivant :
  4. #!/bin/bash
    while true; do
        ./mon_script.sh
        sleep 1
    done
  5. Enregistrez le fichier et quittez l’éditeur.
  6. Rendez le script exécutable :
  7. chmod +x loop_script.sh
  8. Exécutez le script :
  9. ./loop_script.sh

Cette méthode est simple, mais prenez soin de l’arrêter lorsque vous n’en avez plus besoin avec Ctrl+C.

Planification avec cron

Pour les tâches récurrentes, l’utilisation de cron est généralement conseillée, bien que cron ne permette pas d’exécuter une tâche à la seconde près. Néanmoins, vous pouvez programmer un script à exécuter toutes les minutes, puis gérer l’exécution spécifique dans le script lui-même. Voici comment configurer votre tâche cron :

  1. Ouvrez le fichier crontab :
  2. crontab -e
  3. Ajoutez la ligne suivante pour exécuter votre script chaque minute :
  4. * * * * * /chemin/vers/mon_script.sh
  5. Dans mon_script.sh, ajoutez une boucle pour exécuter une tâche toutes les secondes :
  6. #!/bin/bash
    for i in {1..60}; do
        # Votre commande ou script ici
        sleep 1
    done

Comment exécuter un script toutes les secondes sous Linux ?

Pour exécuter un script toutes les secondes efficacement, utiliser watch est la méthode la plus directe et simple. Si vous avez besoin d’une exécution continue, la création d’un script Bash avec une boucle est une excellente alternative. Assurez-vous de bien gérer l’arrêt des scripts en cours d’exécution pour éviter des surcharges système.

A lire :  Que signifie la barre oblique inverse dans l'arborescence Linux Centos ?

FAQ

1. Quelle est la différence entre watch et cron ?

watch exécute une commande à un intervalle fixe dans le terminal et affiche la sortie en temps réel. En revanche, cron est utilisé pour planifier des tâches à des intervalles réguliers sans affichage des résultats à l’écran.

2. Comment savoir si mon script s’exécute correctement ?

Vous pouvez ajouter des lignes de journalisation dans votre script pour enregistrer les sorties ou les erreurs dans un fichier. Par exemple, redirigez les sorties vers un fichier en utilisant ./mon_script.sh >> output.log 2>&1.

3. Puis-je exécuter un script toutes les secondes sans watch ou cron ?

Oui, en utilisant un script Bash avec une boucle infinie et des pauses (via sleep), vous pouvez exécuter une commande ou un script à des intervalles définis sans utiliser ces commandes. Cependant, il vous faudra gérer manuellement l’arrêt de ce script.