Script sauvegarde simple avec tar

Bonjour à tous,

Je me présente : je m’appelle Yoann et je suis un jeune novice en linux, et en bash!
Je suis en étude informatique et je n’ai fais que (pratiquement 99%) de windows (:weary:) durant mon alternance.
Je commence à me rendre compte de son utilité (en fait c’est meme génial!!!) et j’ai une petite question à vous soumettre :

Est ce dangereux de “tar” un dossier de prod quotidiennement pour la sauvegarde ?

Le contexte : je dois sauvegarder la base de données (ça c facile avec un dump), et le dossier de l’application en question.
J’ai donc fais un petit “scriptounet” (pitié ne m’insultez pas en le lisant :cold_sweat:). Pouvez vous svp me conseillez ? (le script concerne le tar)

#!/bin/sh

cd /dossa
tar -zcvf dossb.tar dossb
sleep 5m
mv -f dossb.tar /sauvefolder

Merci :wink:

ça sert à quoi ta tempo ?
Et puis avec l’option z j’ai toujours nommé mes tar tar.gz dans ce cas, ça permet de les différencier.

Sinon qu’est-ce qui pourrait être dangereux ? Quelle est le type de l’application ?

La tempo c’est pour être sur qu’il a fini de faire le tar car c’est un assez gros dossier.
C’est une application web en production dans ma société. En réfléchissant pour le script, je me demandait si le fait de faire une compression tar tout les jours ne risquait pas d’endommager les fichiers (et de rendre inutilisable l’application :fearful:)

PS : l’application est sur apache2 et tomcat6

Avec l’option -v (verbose) le tar sera fini quand il rendra la main, la tempo ne sert à rien.
Je ne vois pas le problème, quand tu compresses les fichiers dans une archives, les fichiers ne disparaissent pas … Ton appli reste en fonction, pourquoi voudrais-tu que cela endommage quoique ce soit.

D’accord merci pour tes conseils.
En somme : je n’ai pas besoin du sleep si je rajoute l’option v.
je dois rajouter “.gz” car sinon ce n’est pas une compression mais une simple archive.

Mais j’ai aussi penser à faire une sauvegarde incrémentale dans l’archive, quotidiennement,et une sauvegarde complète tous les mois : Qu’en penses tu ?

(désolé si mes questions sont “bateau” mais je débute en bash =))

L’option -v c’est pour le mode verbeux, si tu veux rediriger ta sortie vers un fichier log par exemple, le sleep ne sert à rien dans tous les cas.
Si tu veux vérifier que ton archive est bien créée tu utilises la double espérluette

tar -zcvf dossb.tar dossb && mv -f dossb.tar /sauvefolder

Comme ça la commande mv ne s’exécute que si la commande tar renvoie 0 (ie. aucune erreur).

Si tu veux faire des sauvegardes régulières, regardes du côté de la crontab.

Pour la crontab oui je connaissais :slight_smile: mais merci quand meme :wink:

D’accord merci!

Donc tu penses que ce script (avec tes modifs) serait un script correct pour une sauvegarde quotidienne ? (du dossier principale de l’application).

Si vous avez des suggestions faites moi en part je les écouterai avec de grandes oreilles :wink:

Merci d’avance

Sinon : http://www.commentcamarche.net/faq/6536-backups-automatise-de-la-configuration

Bonsoir !

Si je peux te donner une suggestion, j’ai eu l’occasion de mettre en place une solution de backup
de base de donnée récemment ,

#!/bin/bash
ssh='root@192.168.0.2'
date=$(date +"%d-%m-%Y")
file=/chemin/du/dossier/a/sauver

tar -jcvf backup.$date.tar.bz2 $file
scp backup.$date.tar.bz2 $ssh:/chemin/stockage

Voila c’est basique mais ca fait le boulot. T’as un système de sauvegarde via ssh qui est classé par date.
Pour eviter de prendre trop de place sur l’espace locale tu peux ajouter une commande pour supprimer les
anciennes archives.
Pour éviter de prendre trop de place sur le serveur de stockage tu peux te renseigner sur les sauvegarde incrémentielle. cf Borgbackup par exemple.

Bien évidement il faut échanger les clé RSA pour les connexion ssh :wink: http://www.linuxproblem.org/art_9.html

1 J'aime

Bonjour et merci j’ai fait un script plutôt semblable sauf que j’ai monté une partition de mon backup storage sur ma machin et ça donne le même résultat :slight_smile: