Votre navigateur est obsolète. Téléchargez un navigateur moderne, par exemple FireFox.
Léa-Linux : Forum
Le forum de Léa abrite des discussions autour des Logiciels libres.
Syndication
  • RSS ForumForum complet
  • RSS Forum - DéveloppementForum - Développement
  • RSS Forum - Développement - 337321Cette discussion

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.

Important : quand vous posez une question, n'oubliez pas de nous donner les indications suffisantes pour que nous puissions répondre. En effet, la divination n'est pas le fort du Linuxien averti. Pour une meilleure compréhension, le bon usage de la grammaire et de l'orthographe est fortement encouragé. En particulier, le langage SMS est à éviter absolument. En cas d'abus, il pourra être censuré sans autre forme de procès.
Les messages dont le contenu est illégal (incitant à la haine - raciale ou autre, diffamant), ou dont le contenu est sans rapport avec le sujet du forum, ou qui sont parfaitement stupides ou hors sujet seront supprimés sans pitié. Il pourra même être fait appel au fournisseur d'accès du coupable pour faire cesser ses agissements.
» Index du forum » Développement » devellopement sauvegarde en bash
Aller à la discussion: PrécédentSuivante
Action: Nouveau sujetChercherS'authentifier
devellopement sauvegarde en bash
Auteur: hiha (IP enregistrée)
Date: le 26 mai 2008 à 17:06

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

Re: devellopement sauvegarde en bash
Avatar
Auteur: Иван (IP enregistrée)
Date: le 26 mai 2008 à 19:14

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...

Re: devellopement sauvegarde en bash
Auteur: hiha (IP enregistrée)
Date: le 26 mai 2008 à 19:56

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 :)


Espérant que je suis clair

Re: devellopement sauvegarde en bash
Avatar
Auteur: Иван (IP enregistrée)
Date: le 26 mai 2008 à 21:55

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.

Re: devellopement sauvegarde en bash
Avatar
Auteur: oudoubah (IP enregistrée)
Date: le 28 mai 2008 à 09:09

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"

Re: devellopement sauvegarde en bash
Auteur: hiha (IP enregistrée)
Date: le 28 mai 2008 à 11:02

Bonjour a vous deux merci deja pour votre aide :)

@Иван 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 :)






Re: devellopement sauvegarde en bash
Avatar
Auteur: oudoubah (IP enregistrée)
Date: le 28 mai 2008 à 13:07

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"

Re: devellopement sauvegarde en bash
Auteur: hiha (IP enregistrée)
Date: le 29 mai 2008 à 17:48

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



Re: devellopement sauvegarde en bash
Avatar
Auteur: oudoubah (IP enregistrée)
Date: le 29 mai 2008 à 18:00


test: 0: command not found
is not good


A mon avis, c'est test qui veut devenir vizir à la place du vizir image : fou


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"

Re: devellopement sauvegarde en bash
Auteur: hiha (IP enregistrée)
Date: le 29 mai 2008 à 19:03

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

Re: devellopement sauvegarde en bash
Auteur: Basile STARYNKEVITCH (IP enregistrée)
Date: le 29 mai 2008 à 20:15

J'aurais plutôt codé

if [ $? -eq 0 ]; then


----

Basile STARYNKEVITCH où on trouve mon mél

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

N.B. N'hesitez pas à consulter aussi mes contributions antérieures.

Re: devellopement sauvegarde en bash
Auteur: hiha (IP enregistrée)
Date: le 29 mai 2008 à 20:22

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 :

[code]
is good
[/quote]


je précise que le dossier huhu existe pas



Re: devellopement sauvegarde en bash
Avatar
Auteur: Иван (IP enregistrée)
Date: le 29 mai 2008 à 21:08

c'est normal !

man rm a écrit :

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


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



Nom du forum : (antispam) - (en développement:saisir un texte pour le message, rempli cette zone automatiquement)
Votre nom: 
Votre email: 
Sujet: 

 
Ce forum est boosté par Phorum.