Différences entre les versions de « Suppression multi serveurs »

De BlaxWiki
Aller à la navigationAller à la recherche
Ligne 1 : Ligne 1 :
Ce script est envoyé sur un serveur et via une clé publique ssh, il va exécuter d'autre commande sur d'autres sereurs
Ce script est envoyé sur un serveur et via une clé publique ssh, il va exécuter d'autre commande sur d'autres sereurs


==Script principal==
== Script principal ==
<pre>
<pre>
#!/usr/bin/perl  -w
#!/usr/bin/perl  -w

Version du 25 mars 2009 à 09:45

Ce script est envoyé sur un serveur et via une clé publique ssh, il va exécuter d'autre commande sur d'autres sereurs

Script principal

#!/usr/bin/perl  -w

use Net::SSH2;
use Net::SSH2::Channel;

sub ssh_connect
{
    my ($host,
        $cmd)  = @_;

    my $ssh2 = Net::SSH2->new() ;
    $ssh2->connect($host) or die;
    $ssh2->auth_publickey('freesurf',  '/root/bin/freesurf.key.pub', '/root/bin/freesurf.key');
    if ($ssh2->auth_ok) {
        print "Connection sur: $host\n";
        my $channel = $ssh2->channel();
        $channel->exec($cmd);
        print "On execute: $cmd\n";
        return (0);
    }
    print "KO\n";
    return (1);
}

sub _exit
{
        print "Usage:  SuppressionCompteFreesurf.pl [login]\n";
        exit(0);
}
my ($cmd,
    $login,
    $x,$y);

$login = (defined($ARGV[0])) ? $ARGV[0] : _exit;
$x = substr($login, 0, 2);
$y = substr($login, 2, 2);



# 1 delete Mail: action locale
print "On vire le maildir de: $login vers /archivage/tobedeleted";
$cmd = "/bin/mv /freesurf_mail/freesurf.fr/_".$x."/_".$y."/".$login." ".
"/archivage/tobedeleted/$login";
`$cmd`;

# 2 close login: gavroche
$cmd = "/home/freesurf/bin/updatelogin $login";
ssh_connect('gavroche.freesurf.fr', $cmd);

# 3 delete web: lenine
$cmd = "/home/freesurf/bin/webdel $x $y $login";
ssh_connect('lenine.freesurf.fr', $cmd);

# 4 delete db: vendemiaire
$cmd = "/home/freesurf/bin/BDD_del $login";
ssh_connect('vendemiaire.freesurf.fr', $cmd);

print "OK\n";
exit(0);