«Février 2012»
lunmarmerjeuvensamdim
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
archives

Février 2012 0

Janvier 2012 0

Décembre 2011 0

Novembre 2011 0

Octobre 2011 0

Septembre 2011 3
Sites à voir

Association Guatemala 96

Optimisez votre code PHP
Rechercher
 


programation 14/12/2008 - 17H57

Script Perl pour sauvegarder un dossier + sous dossier par ftp

Ce script a pour but de récupérer un dossier ftp et tous ses sous dossiers puis de le compresser.

  1. Instalation :

Copier les lignes  de script dans un fichier backup.pl.

Le script :

  1. #!/usr/bin/perl
  2. use strict;
  3. use Net::FTP;
  4. use Net::FTP::Recursive;
  5. use Socket;
  6. #use warnings;
  7.  
  8. ##################################
  9. #                                #
  10. # Debut definition des variables #
  11. #                                #
  12. ##################################
  13.  
  14. my $rep_bck = "/var/backup/"; # dossier local pour deposer la sauvegarde
  15.  
  16.  
  17. ##################################
  18. #                                #
  19. #  Fin definition des variables  #
  20. #                                #
  21. ##################################
  22.  
  23. print("*********** Windows Backup ************");
  24. if ( ! @ARGV)
  25. {
  26.         die(print("*********** FATAL ERROR - No IP server ************"));
  27. }
  28. else
  29. {
  30.         my $Vargv = $ARGV[0];
  31.         my @IP = split(/./, $Vargv);
  32. #       print "$ARGV[0] n";
  33.         my $nbBlockIP = @IP;
  34. #       print "$nbBlockIP n";
  35.  
  36.         if ( $nbBlockIP != 4)
  37.         {
  38.                 die(print("*********** FATAL ERROR - No IP server or incomplet IP ************"));
  39.         }
  40.         while (@IP)
  41.         {
  42.                 my $bloqueIP = (shift @IP);
  43. #               print "$bloqueIPn";
  44.                 if ($bloqueIP !~ m/^d+$/)
  45.                 {
  46.                         die(print("*********** FATAL ERROR - No IP server or not valid IP ************"));
  47.                 }
  48.                 elsif ($bloqueIP >= 255)
  49.                 {
  50.                         die(print("*********** FATAL ERROR - not valid IP ************"));
  51.                 }
  52.  
  53.         }
  54. }
  55. my @IP = split(/./, @ARGV[0]);
  56. my $ts = int(((time()/60)/60)/24);
  57. #print "$ARGV[0] n";
  58. #print "$ARGV[1] n";
  59. #print "$ARGV[2] n";
  60. #print "n$rep_bckn";
  61. #print "$tsn";
  62. #print "@IP[0]-@IP[1]-@IP[2]-@IP[3]n";
  63. `/bin/mkdir -p "$rep_bck"` if ( ! -d $rep_bck );
  64. `/bin/mkdir -p "$rep_bck/@ARGV[0]"` if ( ! -d $rep_bck."/".@ARGV[0] );
  65.  
  66. if (  -d $rep_bck."/".@ARGV[0] ) {
  67.  
  68.         print "recuperation de tous les fichiersn";
  69.         chdir $rep_bck."/".@ARGV[0];
  70.  
  71.         my $ftp = Net::FTP::Recursive->new(@ARGV[0], Timeout => 120, Debug => 0);
  72.         $ftp->login(@ARGV[1],@ARGV[2]);
  73.         $ftp->pasv ();
  74.         $ftp->binary();
  75.         $ftp->rget( "/*" ) or warn "impossible de telecharger ", $ftp->message;
  76.         $ftp->quit;
  77. }
  78.  
  79. print "creation de l'archive";
  80.  
  81. `tar -cvzf $rep_bck/fichier_backup.@ARGV[1].$ts.tar.gz $rep_bck/@ARGV[0] --remove-files`;

 

  1. Configuration :

Ajustez le dossier dans le quel la sauvegarde sera faites en modifiant la ligne 14 du script.

  1. Utilisation :

L'utilisation du script est très simple, vous passez en paramètre l'ip du serveur, le login et le mot de passe.

exemple : ./backup.pl 127.0.0.1 mon_login mon_pass

 

 

Ajouter un commentaire


programation 29/10/2008 - 15H24

Boucle pour récupérer les stats jour dans awstats

La question qui se posait était de calculer la moyenne de visiteur par jour pour chaque site.

 

voici la solution

 for i in `ls awstats102008*.txt`; do j=20081001 ; l=20081032; m=0;echo "$i" ; while [ "$j" -lt "$l" ] ; do  m=$(expr $m  + 0`grep "$j " $i |cut -f5 -d" "`) ;j=$(expr $j + 1);done; echo "($m/25)"|bc ;done

Ajouter un commentaire


dernières notes

25/09 : Petite vidéo dans la cloître sur l'annimation The walking dead organisé par la librairie Bulle du Mans

24/09 : Petite vidéo sur l'annimation The walking dead organisé par la librairie Bulle du Mans

31/08 : Les plongées sur Banyuls : Les poulpes

25/08 : Land-art Vs ASCII-art

22/02 : 1er jet BA rencontres
catégories

Divers 4

Free 7

Sciences 1

Bricolage 1

Vidéo 8

programation 2

Breizh'caftière 1

Serveur / Administration 1

Informatique 1

Plongée 1
Les vidéos de ironmanlm sur Dailymotion
409 297 pages vues sur ce blog
Copyrights © 2005 Produblog.com Création et hébergement par DRI.FR