[Script] Recuperer la taille d'un dossier

Recuperer la taille d'un dossier [Script] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 22-01-2006 à 16:52:45    

Salut à tous  :hello:  
 
Je suis en train de réaliser mon premier script un peu evolué (un peu  :D ) et me voila confronté à un petit probleme.
 
C'est un script de sauvegarde (original  :sarcastic: ), le principe est que ca mount un lecteur reseau, ca le copie, ca le compresse.
 
Le problême est que je voudrais effectuer un test, a savoir qu'il regarde la taille du dossier monté, et qu'il la compare avec celui copié une fois la copie terminé.
 
Ex :  
Ca regarde tout ce qui a dans /mnt/pc_jean => 1Go
Ca copie tout ce qui a dans /mnt/pc_jean dans /home/xpay/backup_jean, ca regarde => 500Mo
 
Cet idiot de jean a surement coupé son ordi pdt la copie, donc on annule et on garde l'ancienne sauvegarde.
Peut etre aussi qu'il a simplement delete un gros fichier mais bon, les probabilités sont moindre  :)  (ps : je n'ai rien contre les jean)
 
Voici le script :

Code :
  1. #!/bin/sh
  2. #Script de sauvegarde du Mes documents du pc de xpay
  3. if (ping -c 1 192.168.0.10>nul) then    #Ping de la machine a backuper (1fois)
  4.         echo "Montage du dossier...";
  5.         mount -t smbfs //192.168.0.10/"Mes documents" /mnt/pc_xpay -o password=kikoo
  6.         echo "Montage effectuer";
  7. #       echo "Le volume fait ... Mo"
  8.         echo "Creation du dossier temporaire...";
  9.         rm -r /home/xpay/archives/pc_xpay/temp_backup/
  10.         mkdir /home/xpay/archives/pc_xpay/temp_backup/
  11.         echo "Copie du nouveau backup...";
  12.         cp -r /mnt/pc_xpay/* /home/xpay/archives/pc_xpay/temp_backup/
  13.         echo "Copie termine.";
  14. #       Verifier si la taille du dossier copier est superieur ou egale a la taille enregistrer au debut.
  15.         echo "Suppression de l'ancien backup..."
  16.         rm -r *.rar
  17.         echo "Compression des fichiers...";
  18.         tar -jcvf /home/xpay/archives/pc_xpay/backup-$(date +%d-%m-%y).rar pc_xpay/temp_backup/*
  19.         echo "Compression des fichiers termine."
  20.         echo "Suppression des fichiers temporaires..."
  21.         rm -r /home/xpay/archives/pc_xpay/temp_backup/
  22.         echo "Sauvegarde de pc-xpay terminer le $(date)" >> /var/log/logbackup.log
  23.         echo "Backup termine."
  24. else
  25.         echo "pc_xpay est indisponible.";
  26. fi


 
Je pensais faire un "du -ch" et recuperer le total ecris en bas mais j'ai rien trouvé qui explique comment le faire.
 
Si quelqu'un peut m'aider à avancer  :hello:  
 
Merci d'avance  :jap:


Message édité par XPaY le 22-01-2006 à 16:55:08

---------------
"Xpay a toujours raison, même si ça fait chier de l'admettre."  PPPEP 07-09-2016 ## CRs sorties moto - Power and speed solve many things
Reply

Marsh Posté le 22-01-2006 à 16:52:45   

Reply

Marsh Posté le 22-01-2006 à 17:13:17    

pour avoir la taille de ton dossier en octet :

Code :
  1. du -cb | tail -n 1 | awk {'print $1'}

Reply

Marsh Posté le 22-01-2006 à 17:40:58    

Ok niquel ca me donne juste le chiffre qu'il me faut, mais je vois pas comment l'extraire...
 
Les seul info que j'ai sur google sont en perl


---------------
"Xpay a toujours raison, même si ça fait chier de l'admettre."  PPPEP 07-09-2016 ## CRs sorties moto - Power and speed solve many things
Reply

Marsh Posté le 22-01-2006 à 18:45:30    

pourquoi ne pas tout simplement essayer d'utiliser rsync?

Reply

Marsh Posté le 22-01-2006 à 19:12:31    

doum a écrit :

pourquoi ne pas tout simplement essayer d'utiliser rsync?


 
D'ailleurs j'ai un super site qui explique comment sauvegarder grace à rsync (sauvegarde incrémentale):
 
http://www.coredump.fr.to/rsync-so [...] urisee-ssh

Reply

Marsh Posté le 22-01-2006 à 19:18:25    

Je vais voir ca merci


---------------
"Xpay a toujours raison, même si ça fait chier de l'admettre."  PPPEP 07-09-2016 ## CRs sorties moto - Power and speed solve many things
Reply

Marsh Posté le 22-01-2006 à 19:43:53    

C'est bien ce truc je vais m'en servir.
 
Toutefois si je veux utiliser l'option --delete (j'ai pas d'espace illimité...) le probleme reste entier je dois comparer les 2 tailles !
 
Donc j'ai reussi a faire entrer la valeur dans un fichier (taille de la source), puis l'autre dans un autre (taille de la cible) (trop fort) mais j'arrive pas a les comparer :(
 

Code :
  1. du -cb /mnt/pc_xpay | tail -n 1 | awk {'print $1'} > taille origine

Message cité 1 fois
Message édité par XPaY le 22-01-2006 à 19:44:18

---------------
"Xpay a toujours raison, même si ça fait chier de l'admettre."  PPPEP 07-09-2016 ## CRs sorties moto - Power and speed solve many things
Reply

Marsh Posté le 22-01-2006 à 19:45:12    

XPaY a écrit :

C'est bien ce truc je vais m'en servir.
 
Toutefois si je veux utiliser l'option --delete (j'ai pas d'espace illimité...) le probleme reste entier je dois comparer les 2 tailles !
 
Donc j'ai reussi a faire entrer la valeur dans un fichier (taille de la source), puis l'autre dans un autre (taille de la cible) (trop fort) mais j'arrive pas a les comparer :(
 

Code :
  1. du -cb /mnt/pc_xpay | tail -n 1 | awk {'print $1'} > taille origine



 
Pourquoi veux tu verifier la taille?
 
Rsync (en utilisant -delete) va copier tous les fichiers plus recents, et supprimer ceux qui n'existe plus a la source, a quoi va te servir la taille?

Reply

Marsh Posté le 22-01-2006 à 19:48:46    

sinon pour la taille tu recuperes dans deux variables
 
origine=`du -cb | tail -n 1 | awk {'print $1'}`
idem pour sauvegarde
 
puis un simple if [$origine -ge $sauvegarde]; then
 
-ge (plus grand ou egal)
-gt (plus grand)
-le (plus petit ou egal)
-lt (plus petit)
-eq (egal)

Reply

Marsh Posté le 22-01-2006 à 19:54:34    

En fait tu as raison ca sert a rien :D
 
Merci à tous :hello:


---------------
"Xpay a toujours raison, même si ça fait chier de l'admettre."  PPPEP 07-09-2016 ## CRs sorties moto - Power and speed solve many things
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed