Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
devellopement sauvegarde en bash
Envoyé par: hiha

Bonjours à tous , voila je commence un script en bash pour de la sauvegarde sur bande (bon vieux onstream DI-30 lol)

donc voila pour commencer je sauvegarde en .tar.gz.
Je voudrai savoir si il y a pas plus propre comme script

#!/bin/bash
# Script de sauvegarde des données du serveur sur bande
#
# Date du jour
DATE=`date +"%Y-%m-%d"`
DOSSIER=/home/arras8
#
echo "Lancement de la sauvegarde du $DATE" >> /home/sauvegarde_du_$DATE.log
echo -e "Debut de la phase de compression des dossiers suivants  \n" >> /home/sauvegarde_du_$DATE.log 
ls  $DOSSIER  >> /home/sauvegarde_du_$DATE.log
ls  $DOSSIER  | while read line
  
do

echo -e " $line \n"
tar zcvf  $line.tar.gz $line
mv $line.tar.gz /root/azerty 
done 
echo -e  "\n Fin de la compression \n" >> /home/sauvegarde_du_$DATE.log

Je vous remercie d'avance

Poste le Monday 26 May 2008 17:06:44
Répondre     Citer    
Re: devellopement sauvegarde en bash

Bonjour hiha

As-tu réellement besoin de sauvegarder les fichiers individuellement ?

#!/bin/bash
# Script de sauvegarde des données du serveur sur bande
#
# Date du jour
DATE=`date +"%Y-%m-%d"`
DOSSIER=/home/arras8
#
echo "Lancement de la sauvegarde du $DATE ..." > /home/sauvegarde_du_$DATE.log

tar zcvf /root/azerty/$archive.tar.gz $DOSSIER/ >&1 >> /home/sauvegarde_du_$DATE.log

echo "... Fin de la compression" >> /home/sauvegarde_du_$DATE.log


Je ne connais pas les contraintes liées à la sauvegarde sur bande. Tu peux m'éclairer ?
J'ai vu dans le man de tar qu'il y a une option pour éxécuter un script en fin de bande...

Poste le Monday 26 May 2008 19:14:19
Répondre     Citer    
Re: devellopement sauvegarde en bash
Envoyé par: hiha

oui en effet je dois faire une sauvegarde de chaque dossier du /home séparément.

Pour enregistré sur /dev/tape


Mais pour sa je dois utilisé le

block size -b 64 du tar smiling smiley


Espérant que je suis clair

Poste le Monday 26 May 2008 19:56:48
Répondre     Citer    
Re: devellopement sauvegarde en bash

Etant donné que je n'ai jamais eu à traiter de sauvegardes sur bande, non tu n'est pas clair

Bon, pour le script en gros...
#!/bin/bash
# Script de sauvegarde des données du serveur sur bande
#
# Date du jour
DATE=`date +"%Y-%m-%d"`
DOSSIER=/home/arras8
#
echo "Lancement de la sauvegarde du $DATE ..." > /home/sauvegarde_du_$DATE.log

for line in $(ls $DOSSIER); do

tar zcvf /root/azerty/$line.tar.gz $DOSSIER/$line >&1 >> /home/sauvegarde_du_$DATE.log

done

echo "... Fin de la compression" >> /home/sauvegarde_du_$DATE.log
...ça change pas grand chose !

Je ne crois pas pouvoir t'aider davantage, je te laisse te dépatouiller avec les options concernant l'archivage sur plusieurs volumes de tar, et son man...en attendant plus d'éclaircissement sur les éventuelles difficultés que tu rencontres.

Poste le Monday 26 May 2008 21:55:17
Répondre     Citer    
Re: devellopement sauvegarde en bash
Envoyé par: oudoubah

Dans ton script tu sauvegardes sur bande l'ensemble de tes logs... (/home/sauvegarde_du_*)

Tu peux sélectionner via un find :

find /home -maxdepth=1 -type d | while read line

Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Poste le Wednesday 28 May 2008 09:09:51
Répondre     Citer    
Re: devellopement sauvegarde en bash
Envoyé par: hiha

Bonjour a vous deux merci deja pour votre aide smiling smiley

@Иван merci tu ma bein aider

@oudoubah si je comprend bien sa fais une sauvegarde de se qui a été modifié nespa ?


Moi je veux juste sauvegarder tout les dossier du home un par un et ensuite envoyer sur le /dev/tabe smiling smiley






Poste le Wednesday 28 May 2008 11:02:36
Répondre     Citer    
Re: devellopement sauvegarde en bash
Envoyé par: oudoubah

Le find te donne le nom des répertoires un par un de /home :
/home/user1
/home/user2
...
/home/user3

Dans ton script, tu ne sauvegardes que /home/arras8 et non pas chaque dossier du /home comme tu l'as indiqué dans ton second message.
De plus, tu crées un tar par répertoire et par fichier présent dans /home/arras8. Les répertoires et fichiers cachés de cet utilisateur ne seront pas sauvegardés.

Pour les scripts comme ça, si le nombre de fichiers/répertoires est trop grand, le "for" ne fonctionnera pas : trop de paramètres. C'est pour ça que je conseille de plutôt utiliser un while.

Donc, si je ne me trompe pas, ce serait un script de la forme (les options de tar sont vraiment à regarder de plus près. A mon avis, ce que j'ai écris n'ira pas sur bande bien comme il faut. Enfin, c'est juste pour donner une idée):
#!/bin/sh

DATE=$(date +"%Y-%m-%d")
LOG=/home/sauvegarde_du_$DATE.log

# Pour tout écrire dans le log
exec 1> $LOG
exec 2>&1

find /home -maxdepth=1 -type d | while read line ; do
   echo "------ SAUVEGARDE DE $(basename $line) -------"
   tar cvzM $line > /dev/tape
done

PS : peux-tu éviter d'écrire en sms stp?

Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Poste le Wednesday 28 May 2008 13:07:17
Répondre     Citer    
Re: devellopement sauvegarde en bash
Envoyé par: hiha

Bonjour a tous donc voici mon code que j'ai réalisé grâce a vous

#!/bin/sh

DATE=$(date +"%Y-%m-%d")
LOG=/home/sauvegarde_du_$DATE.log

# Pour tout écrire dans le log
exec 1> $LOG
exec 2>&1


#effacement de la cassete 
mt erase  
if( $? = 0)

	then 

		echo  "is good"

	else 

		echo "is not good"
fi 

find /home  -type d | while read line ; do

   echo "------ SAUVEGARDE DE $(basename $line) -------\n\n"

               tar zcb 64 -f /dev/tape $line
               

   echo "------ SAUVEGARDE REUSSITE DE $(basename $line)-----"
done

Je cherche a faire et de savoir avant de commencer l'étape d'enregistrement
voir si la cassette est presente d'où mon if.

Mais dans le log sa me donne sa :

test: 0: command not found
is not good

Une idée ?

Bonne soirée



Poste le Thursday 29 May 2008 17:48:09
Répondre     Citer    
Re: devellopement sauvegarde en bash
Envoyé par: oudoubah

Citation

test: 0: command not found
is not good

A mon avis, c'est test qui veut devenir vizir à la place du vizir #%b


C'est quel shell? (ça ne ressemble pas à du bash).

Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Poste le Thursday 29 May 2008 18:00:20
Répondre     Citer    
Re: devellopement sauvegarde en bash
Envoyé par: hiha

bonsoir a toi , je m'explique ce message proveins de mon fichier log , je n'est pas l'erreur quand je decomente la ligne du log

Poste le Thursday 29 May 2008 19:03:16
Répondre     Citer    
Re: devellopement sauvegarde en bash

J'aurais plutôt codé

if [ $? -eq 0 ]; then

----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Thursday 29 May 2008 20:15:41
Répondre     Citer    
Re: devellopement sauvegarde en bash
Envoyé par: hiha

Bonsoir basile

Je viens de tester
rm -rf huhu
if [ $? -eq 0 ];

        then

                echo  "is good"

        else

                echo "is not good"
fi

Dans le log :

is good
[/quote]


je précise que le dossier huhu existe pas 



Poste le Thursday 29 May 2008 20:22:49
Répondre     Citer    
Re: devellopement sauvegarde en bash

c'est normal !

Citation
man rm
-f, --force
ignorer les fichiers inexistants, ne pas demander de confirmation

Ce qui ne fait pas avancer le bouchon pour ton script de sauvegarde...
?

Poste le Thursday 29 May 2008 21:08:38
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
devellopement sauvegarde en bash
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons