{{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