Suppression multi serveurs
De BlaxWiki
Révision datée du 25 mars 2009 à 09:40 par 212.43.232.68 (discussion)
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);