Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

[shell] Créer un script de backup

d10g3n, le lundi 23 octobre 2006 à 12:30:52
Bonjour à tous!

J'aimerais réaliser un script permettant de sauvegarder le contenu de l'ensemble d'un répertoire (/home par exemple) vers un autre. Problème: je suis un grand débutant en "scriptologie".

Si possible, j'aimerais aussi que ce script ne sauvegarde à chaque fois que les fichiers qui ont été modifiés depuis le dernier backup (l'idée serait en effet de mettre le script dans la crontab).

Voilà! En espérant que quelqu'un sera capable de m'aider...
Configuration: mandriva 2007
Répondre à d10g3n  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jipicy, le lundi 23 octobre 2006 à 13:13:54
Salut,

Il faut que tu t'intéresses à "rsync" (man rsync pour plus de détails).

;-)) Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.
Répondre à jipicy

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
moh, le lundi 23 octobre 2006 à 17:12:26
J'etais entrain d'ecrire un bô script pour toi en recherchant des options de rsync je suis tombé sur ce lien qui doit faire ton bonheur :
http://lea-linux.org/cached/index/Les_sauvegardes.html

De rien :)
Répondre à moh

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
d10g3n, le lundi 23 octobre 2006 à 18:49:25
OK!
Merci les gens!!

Ayant posé la question sur 10 forums en même temps (comme à chaque fois), j'ai obtenu ma première réponse ici:
http://www.developpez.net/forums/showthread.php?p=1452972#po­st1452972

Comme cela m'a permis de résoudre mon problème, j'y ai mis le détail pas à pas de ce qu'il faut faire.

Pour ceux que cela intéresse, voilà le résultat:

TUTO BACKUP

Le but de ce tuto est donc de sauvegarder quotidiennement le contenu d'un répertoire "/chemin/rep1" vers un autre répertoire: "/chemin/rep2".

Première étape, créer un fichier /usr/bin/backup.sh qui contiendra l'ordre de copier rep1 vers rep.
Donc, ouvrir un terminal et passer en mode super utilisateur:

Code :

$su Password: votre mot de passe root


Si tout s'est bien passé, vous avez un "#" à la place du "$".
Ensuite, créer et éditer le fichier /etc/bin/backup.sh:

Code :

#kwrite /etc/bin/backup.sh


Kwrite s'ouvre, vous êtes face à une page blanche. Taper:

Citation:
#!/bin/bash
rsync -a /chemin/rep1 /chemin/rep2

"-a" vous assure à la fois que la copie sera récursive (contiendra tous les sous répertoires de /chemin/rep1) et que seul les fichiers modifiés seront réenregistré à chaque fois (et donc évitera de faire mouliner votre ordinateur pendant des heures à chaque fois).

Tel quel, si vous créez un jour un fichier "toto" dans /chemin/rep1, et que vous l'effacez le lendemain ; le fichier toto restera pour toujours présent dans /chemin/rep2.

Si vous voulez que lors de la supression d'un fichier de /chemin/rep1 il soit aussi effacer de /chemin/rep2, alors il faut ajouter l'option "--delete" :

Code :

#!/bin/bash rsync -a --delete /chemin/rep1 /chemin/rep2


Une fois que vous avez entrez l'une de ces deux lignes de codes, vous enregistrez et vous quittez.

Vous êtes normalement de retour dans la console. On va maintenant éditer le fichier /etc/crontab qui définit toutes les tâches qui doivent être effectuées régulièrement:

Code :

#kwrite /etc/crontab


Vous voilà dans votre fichier crontab. Normalement il devrait déjà contenir des lignes de codes. Voilà par exemple ce contient le mien:

Citation:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root nice -n 19 run-parts --report /etc/cron.hourly
02 4 * * * root nice -n 19 run-parts --report /etc/cron.daily
22 4 * * 0 root nice -n 19 run-parts --report /etc/cron.weekly
42 4 1 * * root nice -n 19 run-parts --report /etc/cron.monthly
5 * * * * root /usr/bin/noip-update

Vérifiez bien que la première ligne "SHELL=/bin/bash" existe. Sinon, rajoutez là.
La partie qui nous intéresse est "run-parts". C'est elle qui contient la liste des programmes à exécuter régulièrement ainsi que leur fréquence d'exécution.

La première partie de l'entrée de crontab décrit quand l'action sera effectuée. Il y a cinq champs, séparés par un espace ou une tabulation, dont chacun est paramétré soit par, un nombre, une étoile (*), ou le texte approprié. Les champs sont, dans l'ordre, minute, heure, jour du mois, mois et jour de la semaine. Le mois et le jour de la semaine permettent l'utilisation d"une abréviation (suivant les jours et mois en anglais), telle que jan pour janvier (January) ou thu pour jeudi (Thursday).

Nous allons donc rajouter la ligne:

Citation:
5 * * * * root /usr/bin/backup.sh

Elle signifie que le programme /usr/bin/backup.sh sera exécuté à chaque heure et cinq minutes (à 0h05; 1h05, 2h05, etc...). Si vous voulez plutôt que la sauvegarde s'effectue tous les jours à 23h05 :


Citation:
5 23 * * * root /usr/bin/backup.sh

Tous les 5 du mois à 23h05:


Citation:
5 23 5 * * root /usr/bin/backup.sh

etc...

Voilà!!

Quelques liens

pour rsync:

http://doc.ubuntu-fr.org/serveur/rsync


un très bon article:

http://www.linuxfocus.org/Francais/M...ticle326.shtml


dans le forum de developpez:

http://developpez.net/forums/showthread.php?p=1393418


avec un réseau:
http://www.bidon.ca/Automatiser_les_...vec_rsync.html



pour cron:

http://doc.ubuntu-fr.org/applications/cron
http://www.linux-france.org/article/...ntfaire-8.html

et bien sûr:


Code :

$man rsync $man crontab
Répondre à d10g3n

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jipicy, le lundi 23 octobre 2006 à 18:54:49
Merci ;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.
Répondre à jipicy

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 kafk, le jeudi 22 mars 2007 à 00:10:49
Merci pour ce script de backup; j'en ai aussi profité. Mais mes rep source des fich à sauvegarder recursivement n'ont pas le mm nom. Comment faire. Je peux garder le mm nom de rep destination
Il faut une boucle recursive????
Merci de m'aider à avancer

kafk
Répondre à kafk

Résultats pour [shell] Créer un script de backup

Perl - Introduction Histoire de Perl Perl (Practical Extraction and Report Language) est un langage de programmation dérivé des scripts shell, créé en 1986 par Larry Wall afin de mettre au point un système de News entre deux réseaux. Il s'agit d'un langage interprété... www.commentcamarche.net/contents/perl/perlintro.php3
STEAM faire un backup des jeux (Résolu) Bonjour à toute la communauté !!! J'ai un problème pour créer un backup de mes jeux steam. J'ai une connexion internet qui n'est pas illimitée, donc je ne peux pas les retélécharger à chaque fois. Je voudrais faire un dvd... www.commentcamarche.net/forum/affich-3768310-steam-faire-un-backup-des-jeux
SHELL OU (Résolu) Bonjour, je ne comprends pas pourquoi dans un script "backup.logs" : if [ $# -lt 1 -o !-d $1 ];then me renvoie : ./backup.logs: line 3: [: too many arguments C'est le "-o !-d $1" qui pose problème ! Mais je ne comprends pas pourquoi ?? Merci :-) www.commentcamarche.net/forum/affich-3278276-shell-ou

Résultats pour [shell] Créer un script de backup

[Shell] Créer un fichier videPour créer un fichier vide, il vous suffit de taper la commande suivante : > fichier Vous pouvez également utiliser la commande touch : touch fichier www.commentcamarche.net/faq/sujet-866-shell-creer-un-fichier-vide
[Shell] Création d'un fichier d'une taille précise.Il peut être util à des fins de tests, de créer des fichiers arbitrairement lourds, la commande dd permet de créer des fichiers "vides" d'une taille voulue:dd if=/dev/zero of=fichier_à_créer bs=1k count=1000Cette commande crée un fichier "vide" d'un... www.commentcamarche.net/faq/sujet-902-shell-creation-d-un-fichier-d-une-taille-precise
Créer un script d'ouverture de sessionWindows permet de définir des scripts d'ouverture de session, c'est-à-dire des scripts contenant des commandes exécutés dès qu'un utilisateur ouvre une nouvelle session. Les scripts d'ouverture de session permettant de lancer des tâches qui seront... www.commentcamarche.net/faq/sujet-5436-creer-un-script-d-ouverture-de-session

Résultats pour [shell] Créer un script de backup

[vba] protection du caractère guillemet (Résolu)Bonjour, Grâce à une subroutine vba, je voudrais créer le fichier texte a.txt suivant : gloup tu as dit "gloup" Alors je fais ceci : Set FS = CreateObject("Scripting.FileSystemObject") Set a = FS.CreateTextFile(a.txt, True) TmpStr = "gloup"... www.commentcamarche.net/forum/affich-3961315-vba-protection-du-caractere-guillemet
Shell, creer un tableau en sh (Résolu)Bonjour a tous J'aimerai savoir comment creer un tableau en script shell SH par exemple j'ai une variable contenant str="bonjour comment ca va" je veux le stockuer dans un tableau avec bonjour en 0er element ca en 1eme et va en 2eme... www.commentcamarche.net/forum/affich-4769581-shell-creer-un-tableau-en-sh
[Shell] Création de plusieurs fichiers XML (Résolu)Salut tlm!! Voilà, j'ai besoin de réaliser un script shell, et je n'arrive malheuresement pas à appliquer mes peu de connaissances pour réaliser ce que je veux. A la base, j'ai un fichier à plat du type: data1 value1 data2 value2... www.commentcamarche.net/forum/affich-3116368-shell-creation-de-plusieurs-fichiers-xml

Résultats pour [shell] Créer un script de backup

Objet FileSystemObject (FSO)FileSystemObject L'objet FileSystemObject (FSO) permet de manipuler le système de fichiers de Windows. L'utilisation du modèle d'objet FileSystemObject s'effectue en créant une instance de l'objet Scripting.FileSystemObject l'intermédiaire de la... www.commentcamarche.net/contents/vbscript/vbs-fso.php3
Sauvegarde (backup)La sauvegarde Néanmoins, la mise en place d'une architecture redondante ne permet que de s'assurer de la disponibilité des données d'un système mais ne permet pas de protéger les données contre les erreurs de manipulation des utilisateurs ou... www.commentcamarche.net/contents/surete-fonctionnement/sauvegarde.php3
WSH - Objet WshShellWshShell L'objet WshShell contient des informations sur l'environnement d'exécution, ainsi que des méthodes permettant de gérer l'exécution locale d'applications, de manipuler la base de registre, d'accéder aux ressources systèmes (base de... www.commentcamarche.net/contents/vbscript/vbs-wshshell.php3