Différences entre les versions de « Les scripts utiles »

De Société Coopérative d'Aménagement Numérique Icaunaise
Aller à la navigation Aller à la recherche
 
(14 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
Script pour changer le password d'une antenne
Cette page rassemble différents scripts et morceaux de code dont on ne sait pas trop quoi faire mais qui pourraient servir à d'autres.
<pre>
#!/usr/bin/perl
use FindBin qw($Bin $Script);
use WWW::Mechanize;


die "Syntax: $Script    
= Scripts =
...
* [[Script pour changer le password d'une antenne UBNT]]
Changes the password on 1 or more AirOS units.
" unless @ARGV >= 6;


my $user      = shift @ARGV;
= Query SQL =
my $op        = shift @ARGV;
* [[SQL pour summary financier dans le SI]]
my $np        = shift @ARGV;
* SQL pour retrouver des adhérents n'ayant pas de cotisation active : select organisation from users where id_user not in (select id_user from users_products where id_product = 16) and id_right > 2;
my $rouser    = shift @ARGV;
my $ropass    = shift @ARGV;
my @addresses = @ARGV;


open L, ">>$Bin/$Script.log" or die "Unable to write to $Bin.log: $!";
= Howto =
 
* [[Créer une clé USB bootable pour installer VMWare ESXi]]
sub l {
* [[Activer la gestion VRRP sur les bridges Edgemax]]
    print STDERR @_;
* [[Patcher MPD5 pour parler aux l2tpns-fendo de FDN]]
    print L @_;
* [[Monter un tunnel GRE ou IPIP par dessus PPPoE et y faire passer de l'OSPF]]
}
* [[Filtrer un rogue DHCPd sur une antenne Ubiquiti]]
 
* [[Gestion VM en ssh]]
for my $a (@addresses) {
* [[Modifier ports d'écoute du edgemax]]
 
    l "Changing password on $a\n";
 
    my $mech = WWW::Mechanize->new();
    my $entry;
    my $start = "http://$a/login.cgi?uri=/system.cgi";
 
    $mech->get($start);
    $mech->field('username',$user);
    $mech->field('password',$op);
    $response = $mech->submit(); # to get login cookie
 
    if (!$response->is_success) {
        l $response->status_line, "\n";
    }
 
    $mech->get(qq|http://$a/system.cgi|);
    $mech->field('NewPassword',$np);
    $mech->field('NewPassword2',$np);
    $mech->field('OldPassword',$op);
    $mech->field('ro_status', "enabled");
    $mech->field('rousername', $rouser);
    $mech->field('roPassword', $ropass);
    $mech->field('hasRoPassword', "true");
    $mech->click_button(name => "change");
 
    $response = $mech->submit();
 
    if (!$response->is_success) {
        l $response->status_line, "\n";
    }
 
    $response = $mech->get(qq|http://$a/apply.cgi|);
 
    if (!$response->is_success) {
        l $response->status_line, "\n";
    }
 
 
}
 
close L;
 
exit 0;
</pre>
 
Query SQL pour le summary financier
<pre>
select valid_from, valid_until, dbegin_may, dend_may,
    (dend_may - dbegin_may + 1) as nb_days_may,
    value_day, nb_days,
    value_day * (dend_may - dbegin_may + 1) as value_may from
    (select
    valid_from, valid_until,
    greatest(valid_from, '2016-05-01') as dbegin_may,
    least(valid_until, '2016-05-31') as dend_may,
    price,
    price / (valid_until - valid_from) as value_day,
    valid_until - valid_from as nb_days
    from invoices_elts
    where valid_until >= '2016-05-01' and valid_from <= '2016-05-30')
    as may;
</pre>

Version actuelle datée du 8 juillet 2016 à 12:42

Cette page rassemble différents scripts et morceaux de code dont on ne sait pas trop quoi faire mais qui pourraient servir à d'autres.

Scripts

Query SQL

  • SQL pour summary financier dans le SI
  • SQL pour retrouver des adhérents n'ayant pas de cotisation active : select organisation from users where id_user not in (select id_user from users_products where id_product = 16) and id_right > 2;

Howto