[Bash] Script de Backup
|
23-04-2013, 22h15
(Modification du message : 30-05-2013, 00h11 par Edelwin.)
Message : #1
|
|
Edelwin
![]() Go fork yourself ! ![]() Messages : 37 Sujets : 3 Points: 13 Inscription : Apr 2013 |
[Bash] Script de Backup
Plopatouss o/
Pour ma première contribution à ce forum, je voudrais partager avec vous un script qui me sert énormément : un script de backup pour ma clé USB. Il se compose en deux parties :
Code : #!/bin/bash et .SLAANESH_backup.sh Code : #!/bin/bash un exemple de ligne de fichier de logs Code : Backup de routine effectué le 10/04/2013 Corrigez-moi, Critiquez-moi, je ne demande que ça ! |
|
24-04-2013, 07h44
(Modification du message : 01-08-2013, 16h17 par supersnail.)
Message : #2
|
|
gruik
![]() gouteur de savon ![]() Messages : 757 Sujets : 44 Points: 483 Inscription : Oct 2012 |
RE: [Bash] Script de Backup
(23-04-2013, 22h15)Edelwin a écrit : Corrigez-moi (...) je ne demande que ça ! coquine va ![]() ![]() alors j'ai regardé vite fait y'a effectivement quelques points qui m'interrogent, en premier lieu pourquoi scinder ton outil en 2 scripts distincts ? plutot que de faire une foret de if/elif/else je pense que perso j'aurais au minimum opté pour un case/esac, avec eventuellement un tableau qui pour chaque entrée associe le choix (1,2,3) avec la string qui correspond, juste histoire de faire sexy disons tu peux remplacer ta ligne : Code BASH :
[ -d ~/backup_SLAANESH ] || mkdir ~/backup_SLAANESH par : Code BASH :
mkdir -p ~/backup_SLAANESH c'est la seule option de mkdir, elle sert véritablement qu'à ça méfiance néanmoins si tu venais à automatiser ton backup et le mettre en cronjob par exemple, le "~/" nécéssite que l'environnement corresponde au user qui lance le script enfin tu fais un usage un peu aléatoire des "&&" et ";" j'ai l'impression, le coeur de ton backup c'est la commande rsync, ce qui serait un réel plus ça serait à mon avis de s'assurer que la commande a bien réussi basiquement ça peut se faire de la forme suivante par exemple : Code BASH :
rsync <option> && exit NIQUEL || exit FOIREUX juste quelques idées... |
|
24-04-2013, 09h09
Message : #3
|
|
thxer
![]() :(){ :|:& };: ![]() Messages : 382 Sujets : 60 Points: 162 Inscription : Feb 2013 |
RE: [Bash] Script de Backup
Très instructif
|
|
24-04-2013, 09h12
Message : #4
|
|
Edelwin
![]() Go fork yourself ! ![]() Messages : 37 Sujets : 3 Points: 13 Inscription : Apr 2013 |
RE: [Bash] Script de Backup
Pour ce qui est du scindage, c'est juste pour être décentralisé et pouvoir caser un appel de script dans le script (scriptception!).
Ta dernière ligne était de base implémentée dans la partie rsync, mais il m'arrivait d'avoir des erreurs de de rsync, et un message positif :/ Et je.ne compte pas le mettre en cronjob, car je navigue entre des ordis qui ne sont pas à moi (genre le G5 Familial) et je ne pourrais pas toujours être là à temps pour brancher la clé. |
|
24-04-2013, 10h43
(Modification du message : 24-04-2013, 10h56 par notfound.)
Message : #5
|
|
notfound
![]() #!/usr/bin/env bash ![]() Messages : 687 Sujets : 47 Points: 272 Inscription : Sep 2012 |
RE: [Bash] Script de Backup
o/
Déjà, merci pour le partage ! C'est une bonne idée de script ![]() Par contre, il y a quelques défauts mais on va les corriger ensemble. ################################################################################ Tout d'abord, j'ai pas compris cette ligne : Code BASH :
Si tu veux sauter une ligne avec le \n ça ne marchera pas si tu le mets ici ! Code BASH :
############################################################################### Ensuite, tu as : Code BASH :
Que tu peux remplacer par : Code BASH :
read -p "Cause : " choix ################################################################################ Pour le nom du fichier en fonction de la date Code BASH :
la_date=$(date +%d/%m/%Y) Si jamais tu fais 2 backup dans la même journée, ça écrase tout donc c'est pas forcément bien ... Sauf si t'es sûr. Mais bon tu peux préciser avec l'heure : Code BASH :
la_date=$(date "+%Y/%m/%d_%H:%M") ################################################################################ Pour finir, je vois 2 choses génantes : - L'utilisation de trop de IF --> CASE ... IN - Si un user ne mets pas 1, 2 ou 3 tu quittes ton programme, il faut donc le relancer ce qui n'est pas très élégant en soit Voici mon code corrigé pour SLAANESH_backup.sh : Code BASH :
Concernant le 2e script, tout a été dit par Gruik ! EDIT : Il serait aussi bien cool que la clé USB soit détectée automatiquement, plutôt que ce soit à l'user de changer le script ![]() |
|
« Sujet précédent | Sujet suivant »
|
Sujets apparemment similaires… | |||||
Sujet | Auteur | Réponses | Affichages | Dernier message | |
Générateur mot de passe bash | notfound | 4 | 2,718 |
27-11-2012, 23h10 Dernier message: b0fh |
Utilisateur(s) parcourant ce sujet : 2 visiteur(s)