Connection SSH automatique en BASH
Rédigé par BeHuman
Aucun commentaire
Classé dans : Shell/Bash

Ce script permet de se connecter en SSH sur un serveur et d'effectuer des actions tel que redémarrer un server Apache ou redémarrer une base de donnée MYSQL. Ce script utilise expect, xterm et zenity
#! /bin/bash if [[ `which expect` == '' ]]; then zenity --question --title="Installation" --text="<b>expect</b> ne semble pas installé. Souhaitez vous l'installer maintenant ?" if [[ "$?" == 0 ]]; then gksudo -m "L'installation de expect nécessite les privilèges administrateur" "apt-get install -y -f expect" | zenity --progress --title="Installation" --text="Installation de <b>expect</b> en cours..." --auto-close --pulsate else exit fi fi function _ssh() { choice=`zenity --list --title="Serveur Distant" --text="choisissez une action dans la liste" --height="225" --width="200" --column "actions" "Connection SSH" "Redémarrer le serveur" "Redémarrer la base de donnée" "Tout redémarrer" "Installer ce script"` case $choice in "Connection SSH") xterm -e expect -c """ set force_conservative 1; set timeout 2 spawn ssh root@server expect \"password: $\" send \"ton-pass\n\" sleep 3 interact """ | zenity --progress --title="Serveur distant" --text="Connection SSH en cours..." --pulsate --auto-close _ssh ;; "Redémarrer le serveur") xterm -e expect -c """ set force_conservative 1; set timeout 2 spawn ssh root@server expect \"password: $\" send \"ton-pass\n\" sleep 3 send \"/etc/init.d/apache2 restart\n\" send \"exit\n\" interact """ | zenity --progress --title="Serveur distant" --text="Redémarrage du serveur en cours..." --pulsate --auto-close _ssh ;; "Redémarrer la base de donnée") xterm -e expect -c """ set force_conservative 1; set timeout 2 spawn ssh root@server expect \"password: $\" send \"ton-pass\n\" sleep 3 send \"/etc/init.d/mysql restart\n\" send \"exit\n\" interact """ | zenity --progress --title="Serveur distant" --text="Redémarrage de la base de donnée en cours..." --pulsate --auto-close _ssh ;; "Tout redémarrer") xterm -e expect -c """ set force_conservative 1; set timeout 2 spawn ssh root@server expect \"password: $\" send \"ton-pass\n\" sleep 3 send \"/etc/init.d/apache2 restart\n\" send \"/etc/init.d/mysql restart\n\" send \"exit\n\" interact """ | zenity --progress --title="Serveur distant" --text="Redémarrage du serveur et de la base de donnée en cours..." --pulsate --auto-close _ssh ;; "Installer ce script") gksudo "cp -p ssh-connect.sh /usr/bin cp -p ssh-connect.desktop /usr/share/applications" _ssh ;; esac } _ssh