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

De BlaxWiki
Aller à la navigationAller à la recherche
 
(8 versions intermédiaires par 2 utilisateurs non affichées)
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
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>
#!/usr/bin/perl  -w
#!/usr/bin/perl  -w
Ligne 64 : Ligne 65 :
</pre>
</pre>


== Script 2 sur gavroche==
/home/freesurf/bin
<pre>
#!/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
</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>






[[Catégorie:Script-Clara]]
[[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