Différences entre les versions de « Suppression multi serveurs »
De BlaxWiki
Aller à la navigationAller à la recherche| (5 versions intermédiaires par 2 utilisateurs non affichées) | |||
| Ligne 1 : | Ligne 1 : | ||
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 Clara) | |||
== Script principal == | == Script principal== | ||
<pre> | <pre> | ||
| Ligne 65 : | Ligne 65 : | ||
</pre> | </pre> | ||
== Script 2 sur gavroche == | == Script 2 sur gavroche== | ||
/home/freesurf/bin | |||
<pre> | <pre> | ||
#!/bin/sh | #!/bin/sh | ||
| Ligne 80 : | Ligne 80 : | ||
exit 0 | exit 0 | ||
</pre> | |||
== Script 3 sur Lenine== | |||
/home/freesurf/bin | |||
<pre> | |||
#!/bin/sh | |||
mv /data/freesurf.fr/_$1/_$2/$3 /data/tobedeleted/$3 | |||
</pre> | |||
== Script 4 sur vendemiaire== | |||
<pre> | |||
#!/bin/sh | |||
LOGIN=$1 | |||
mv /data/freesurf_mysql/$LOGIN /data/tobedeleted/$LOGIN | |||
</pre> | </pre> | ||
[[Catégorie:Script | [[Catégorie:Script]] | ||
Version actuelle datée du 6 février 2012 à 16:29
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 Clara)
Script principal[modifier]
#!/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[modifier]
/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 3 sur Lenine[modifier]
/home/freesurf/bin
#!/bin/sh mv /data/freesurf.fr/_$1/_$2/$3 /data/tobedeleted/$3
Script 4 sur vendemiaire[modifier]
#!/bin/sh LOGIN=$1 mv /data/freesurf_mysql/$LOGIN /data/tobedeleted/$LOGIN