Automatiser des tâches répétitives sous GNU/Linux

Rédigé par thomas - - Aucun commentaire

Plusieurs distributions GNU/Linux -dont Ubuntu et Mint- placent le répertoire $HOME/bin (existant ou à créer) automatiquement dans le PATH, ce qui permet d'exécuter de partout les scripts qui s'y trouvent. C'est très utile pour s'éviter de tout retenir : il suffit d'appeler chaque "macro commande" par son petit nom.

Voici comment procéder pour se constituer un petit stock de scripts utiles, toujours à portée de main.

De manière générale, pour pouvoir lancer un script bash du $HOME/bin avec un simple mon_script dans un terminal, il est indispensable :

  1. de le rendre exécutable : chmod +x mon_script
  2. d'indiquer en entête du fichier le chemin de l'interpréteur qui doit l'exécuter, dans notre cas : #!/bin/bash (c'est le "shebang")

Exemple : recharger Apache

Apache est un serveur web qu'il est souvent nécessaire de recharger afin de prendre en compte une modification dans sa configuration.

Un script apache_reload contiendrait par exemple :

#!/bin/bash
sudo /etc/init.d/apache2 reload
notify-send -t 5000 "Apache rechargé"
exit 0

Il y a un petit ajout totalement facultatif : le notify-send (en savoir plus) qui affiche une notification système personnalisée. Une touche de classe, quoi...

Et sinon ?

Pour vous donner quelques idées, voici ce que font certains de mes propres scripts :

  • synchroniser certains répertoires ciblés sur une clé usb grâce à rsync
  • importer un dump MySQL dans la base de données appropriée
  • éditer le fichier de configuration de PHP
  • réaliser une capture d'écran animée grâce à byzanz
  • mettre à jour une série de dépôts SVN
  • ajouter ou supprimer un virtual host

Un soucis ? Vérifiez à tout hasard que :

  • vous vous placez préalablement dans le répertoire du fichier concerné (ex : cd /home/thomas/bin)
  • vous remplacez bien mon_script par le nom de votre propre fichier...

Écrire un commentaire

Quelle est la troisième lettre du mot plcjz ?