Automation

Comment automatiser des tâches sous Linux

Réalisation d'un script de démarrage

Il est toujours utile de réaliser un script de démarrage pour par exemple monter des répertoires vituels, nétoyer le système, configurer le firewall ou la QOS.

Pour cela il faut créer un script. Voici un exemple de sctucture vide : /etc/init.d/rc.local

#!/bin/sh
########################
#                      #
# Scripts de démarrage #
#  Matthieu  Bouthors  #
#                      #
########################

start (){
## commandes de démarrage

}

stop (){
## Commandes d'arrêt

}

# Structure d'appel des fonctions :
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        stop
        start
        ;;
  *)
        echo "Usage: /etc/init.d/rc.local {start|stop|restart}"
        exit 1
esac
exit 0

Ajoutez vos commandes dans les fonctions start et stop :

start (){
## commandes de démarrage
        ## montage des répertoires virtuels
        echo -n "Montage des répertoires virtuels...   "
        mount --bind /space/Appz /ftp/Appz
        mount --bind /space/BD /ftp/BD
        mount --bind /space/Series-Anime /ftp/Series-Anime
        mount --bind /space/MP3 /ftp/MP3
        mount --bind /space2/upload /ftp/upload
        mount --bind /space2/Games /ftp/Games
        mount --bind /space2/OnDemand /ftp/OnDemand
        echo "Terminé"
}
stop (){
## Commandes d'arrêt
        ## démontage des répertoires virtuels
        echo -n "Démontage des répertoires virtuels...   "
        umount /ftp/Appz
        umount /ftp/BD
        umount /ftp/Series-Anime
        umount /ftp/MP3
        umount /ftp/upload
        umount /ftp/Games
        umount /ftp/OnDemand
        echo "Terminé"
}

Rendre le script exécutable :

# chmod a+x /etc/init.d/rc.local

Puis le tester :

gandalf:/etc/init.d# ./rc.local
Usage: /etc/init.d/rc.local {start|stop|restart}
gandalf:/etc/init.d# ./rc.local start
Montage des répertoires virtuels...   Terminé
gandalf:/etc/init.d# ./rc.local stop
Démontage des répertoires virtuels...   Terminé
gandalf:/etc/init.d# ./rc.local restart
Démontage des répertoires virtuels...   Terminé
Montage des répertoires virtuels...   Terminé
gandalf:/etc/init.d#

Enfin, l'ajouter au démarrage (sous Debian) grâce à update-rc.d :

gandalf:~# update-rc.d --help
usage: update-rc.d [-n] [-f] <basename> remove
       update-rc.d [-n] <basename> defaults [NN | sNN kNN]
       update-rc.d [-n] <basename> start|stop NN runlvl [runlvl] [...] .
                -n: not really
                -f: force
gandalf:~#

Par exemple pour un démarrage et un arrêt par défaut :

gandalf:~# update-rc.d rc.local defaults
 Adding system startup for /etc/init.d/rc.local ...
   /etc/rc0.d/K20rc.local -> ../init.d/rc.local
   /etc/rc1.d/K20rc.local -> ../init.d/rc.local
   /etc/rc6.d/K20rc.local -> ../init.d/rc.local
   /etc/rc2.d/S20rc.local -> ../init.d/rc.local
   /etc/rc3.d/S20rc.local -> ../init.d/rc.local
   /etc/rc4.d/S20rc.local -> ../init.d/rc.local
   /etc/rc5.d/S20rc.local -> ../init.d/rc.local
gandalf:~# 

Plannifer des taches

FIXME

linux/config/automation.txt · Dernière modification: 2011/01/08 14:44 par matthieu
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki