Connection SSH automatique en BASH

Rédigé par BeHuman Aucun commentaire
Classé dans : Shell/Bash Mots clés : ssh, apache, base de donnée, expect, xterm, zenity

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

 

Écrire un commentaire

Quelle est la dernière lettre du mot bel5d ?

Fil RSS des commentaires de cet article