{{tag>fr fr:linux fr:configuration_de_linux}}
====== 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 [[linux:Debian]]) grâce à //update-rc.d// :
gandalf:~# update-rc.d --help
usage: update-rc.d [-n] [-f] remove
update-rc.d [-n] defaults [NN | sNN kNN]
update-rc.d [-n] 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