Différences entre les versions de « Suppression multi serveurs »
De BlaxWiki
Aller à la navigationAller à la recherche| Ligne 67 : | Ligne 67 : | ||
== Script 2 sur gavroche== | == Script 2 sur gavroche== | ||
/home/freesurf/bin | |||
<pre> | <pre> | ||
#!/bin/sh | #!/bin/sh | ||
| Ligne 81 : | Ligne 81 : | ||
</pre> | </pre> | ||
== Script sur Lenine== | |||
/home/freesurf/bin | |||
<pre> | |||
#!/bin/sh | |||
mv /data/freesurf.fr/_$1/_$2/$3 /data/tobedeleted/$3 | |||
</pre> | |||
== Script sur vendemiaire== | |||
<pre> | |||
#!/bin/sh | |||
LOGIN=$1 | |||
mv /data/freesurf_mysql/$LOGIN /data/tobedeleted/$LOGIN | |||
</pre> | |||
[[Catégorie:Script-Clara]] | [[Catégorie:Script-Clara]] | ||
Version du 25 mars 2009 à 16:54
Un script principal est exécuté sur un serveur, et via une clé publique ssh il exécute des scripts sur d'autres serveurs
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);
Script 2 sur gavroche
/home/freesurf/bin
#!/bin/sh LOGIN=$1 if [ -z $LOGIN ]; then exit 42; fi echo "update clarapw set mail_flags='inactive' where login='"$LOGIN"';" | mysql -u root --password='xxxxx' clarapw echo "update clarapw set login='1~"$LOGIN"' where login='"$LOGIN"';" | mysql -u root --password='xxxx' clarapw exit 0
Script sur Lenine
/home/freesurf/bin
#!/bin/sh mv /data/freesurf.fr/_$1/_$2/$3 /data/tobedeleted/$3
Script sur vendemiaire
#!/bin/sh LOGIN=$1 mv /data/freesurf_mysql/$LOGIN /data/tobedeleted/$LOGIN