Appel aux dieux des Scripts Bash...
16-10-2013, 02:23 PM, (Modification du message : 16-10-2013, 02:26 PM par Baldarhion.)
#1
Appel aux dieux des Scripts Bash...
Bon, je me suis remis il y a peu à faire quelques scripts bash pour me simplifier la vie. Or, en consultant différents sites, je constate que la syntaxe n'est jamais la même... Bon, mes scripts fonctionnent, mais je n'aime pas faire de l'à-peu-près ;)

Deuxième chose, je vous mets un petit scripts que j'exécute pour les sauvegardes. Si on lui passe le paramètre "usb", il regarde si ma clef est bien branchée (vérification de l'existence du répertoire /media/XXXX-XXXX). Si c'est le cas, il vérifie que le répertoire du backup du jour (nom de rép créée avec la date). Si c'est le cas----> exit.

Sinon, il compresse les répertoires que je veux sauvegarder (les erreurs sont stockées dans un log) et les écrit directement sur ma dropbox. Si le paramètre "usb" a été passé, il crée les archives d'abord sur la clef avant de les "cp" sur dropbox.

Alors, j'ai besoin de votre aide pour me donner des idées afin de rendre ce script plus digeste et je voudrais aussi utiliser une boucle pour examiner dans le rép /media/ histoire de ne plus imiter le script à une seul clef Smiley

Je vous remercie d'avance de vos lumières et m'excuse pour ce script qui peut paraître bien peu structuré (j'ai toujours aimé scripter en fonçant tête baissée et modifier au fur et à mesure...). Et n'hésitez pas à me pourfendre pour ma syntaxe approximative...

Le script:

#! /bin/sh

clear

date >>~/scripts/sauv.log

if [ "$1" = "usb" ];
then
if [ -e "/media/7E2C-0475/" ];
then chemin="/media/7E2C-0475/backup/"
echo "Sauvegarde sur clef USB"
else echo "Faudrait peut être la brancher la clef hein ?"
echo "Enfin..."
echo "Je dis ça, je dis rien..."
echo "^_^"
echo
echo
cowsay Dommage
exit
fi
else chemin="/home/baldarhion/Dropbox/backup/"
echo "Sauvegarde sur DROPBOX"
fi


# Création du répertoire de destination
DT=`date +%d-%m-%Y`

REP=$chemin"sauvegarde$DT"

if [ -e "$REP" ];
then echo "C'est déjà fait dude..."
exit
else mkdir $REP
fi


# Sauvegardes renpy
echo "******************************"
echo "Sauvegardes Ren'py en cours..."
tar -cjf $REP/renpysave.tar ~/.renpy/* 2>>~/scripts/sauv.log
echo "OK."
echo
# Sauvegardes mail
echo "Sauvegarde des mails..."
tar -cjf $REP/mailsave.tar ~/.thunderbird/* 2>>~/scripts/sauv.log
echo "OK."
echo
# Sauvegardes des documents
echo "Sauvegardes des documents..."
tar -cjf $REP/docs.bz2 ~/Documents/doc/* 2>>~/scripts/sauv.log
echo "OK."
echo "****************************"
echo "Sauvegardes Traductions..."
tar -cjf $REP/traductions.bz2 ~/Documents/doc\ jeux/Traduction\ Homeward/* 2>>~/scripts/sauv.log
tar -cjf $REP/script.bz2 ~/jeux/homeward\ french/game/script.rpy 2>>~/scripts/sauv.log
echo "OK."
echo "****************************"
echo
echo

# si sauvegarde sur clef USB, on copie vers Dropbox
if [ "$1" = "usb" ];
then echo "Copie des archives sur Dropbox"
chem2="/home/baldarhion/Dropbox/backup/sauvegarde$DT"
mkdir $chem2
cp $REP/* $chem2
echo "OK."
fi


PS: désolé, je n'arrive pas à conserver les indentations avec le copier/coller :'(
Répondre
16-10-2013, 05:55 PM,
#2
RE: Appel aux dieux des Scripts Bash...
ha les batch, j'aime ^^
ça me rapelle des bons souvenirs,
et y a pas plus simple pour des actions simples et efficaces...

mais perso pour mes sauvgardes (vers mon serveur ou autres) j'utilise FreeFileSync.exe,
programme gratuit et simplee a utiliser.

comme je suis pas un dieu en batch, je ne saurais te conseiller....
Répondre
16-10-2013, 07:27 PM, (Modification du message : 16-10-2013, 07:30 PM par Baldarhion.)
#3
RE: Appel aux dieux des Scripts Bash...
Hé hé :-)
Mais c'est tellement plus drôle de le faire à sa sauce. Par contre ton message vient e me faire penser à la commande rsync... C'est malin, je vais encore passer une journée à bidouiller :-P

Avec un peu de chance, on pourra arriver à faire le script de sauvegardes ultime et collaboratif...

Je vais quand même jeter un oeil au logiciel que tu utilises.
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)