• STATISTIQUES
  • Il y a eu un total de 0 membres et 49728 visiteurs sur le site dans les dernières 24h pour un total de 49 728 personnes!
    Membres: 2 605
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] Kalkulators
    Ce projet a plusieurs buts, le premier étant l’étude de toutes formes cryptographiques, le cot&ea...
    Cryptographie
    [EN] xda-developers
    Très bon site pour les gros bidouilleurs de smartphone de windows à androïd et de Apple jusqu'...
    Phreaking
    [FR] µContest
    µContest est un site de challenges de programmation, c'est à dire qu'il propose des épreu...
    Hacking
    [EN] Security Traps
    Site de challenge qui prétend être construit non pas dans le but de parfaire vos connaissances, mais plutôt dan...
    Challenges
    [EN] Rankk
    Site de challenge construit sur le principe d'une pyramide à 9 level. Level 1: 60,Level 2: 72,Level 3: 68,Lev...
    Challenges
    [FR] Infomirmo
    Challenge présenté sous la forme de 6 niveaux de difficultés diverses et variées avec chacun plusieurs chall...
    Challenges
    [FR] PHP Débutant
    Apprendre le PHP par l'exemple, facilement et simplement. Réservé d'abord aux débutants....
    Programmation

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Bash] Script de Backup
23-04-2013, 22h15 (Modification du message : 30-05-2013, 00h11 par Edelwin.)
Message : #1
Edelwin Hors ligne
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 :
  • La partie cause (cause.sh) qui servira pour le fichier de logs
  • La partie SLAANESH_backup.sh qui enclenche le script de backup en lui-même
On lance SLAANESH_backup.sh en premier (revu et corrigé par de nombreux contributeurs tels que gruik et notfound)
Code :
#!/bin/bash

echo -e "Veuillez entrer la cause de ce backup : \n"
echo "Backup de routine     (1)"
echo "Veille d'un départ    (2)"
echo "Changement de support (3)"

while true; do
         read -p "Cause : " choix
         case $choix in
                '1')
                        cause="Backup de routine effectué"
                        break ;;
                '2')
                        cause="Veille d'un départ"
                        break ;;
                '3')
                         cause="Changement de support"
                         break ;;
                 *)
                         echo "Veuillez taper un choix correct après avoir relancé le programme" ;;
        esac
done
  
la_date=$(date "+%Y/%m/%d_%H:%M")
echo "$cause le $la_date" >> logs.txt
echo "$cause le $la_date" >> backup_SLAANESH/logs.txt
exit 0

et .SLAANESH_backup.sh

Code :
#!/bin/bash
#SLAANESH_BACKUP.sh
# Comme je suppose que votre disque dur/clé USB ne s'appelle pas SLAANESH, vous pouvez remplacer aisément toutes les occurences de ce mot dans VIM en
# tapant :%s/SLAANESH/Nom_de_votre_support
# On appelle le module de sélection de cause situé dans le même répertoire
./cause.sh &&
# Test de détection du dossier de backup. Le dossier créé sera à la racine (~)
[ -d ~/backup_SLAANESH ] || mkdir ~/backup_SLAANESH
# La commande rsync est lancée avec son panel d'options ||
rsync -aorzi  --verbose --stats --progress /media/SLAANESH/ ~/backup_SLAANESH &&
clear ;
echo "backup réalisé. Revenez nous voir ;)"

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 !
+1 (4) -1 (0) Répondre
24-04-2013, 07h44 (Modification du message : 01-08-2013, 16h17 par supersnail.)
Message : #2
gruik Hors ligne
gouteur de savon
*



Messages : 757
Sujets : 44
Points: 482
Inscription : Oct 2012
RE: [Bash] Script de Backup
+1 (3) -1 (0) Répondre
24-04-2013, 09h09
Message : #3
thxer Hors ligne
:(){ :|:& };:
*



Messages : 382
Sujets : 60
Points: 162
Inscription : Feb 2013
RE: [Bash] Script de Backup
Très instructif
Thxer.com
Twitter Thxer_

Code BASH :
echo "JkZ Palx" | sed 'y/lPZaJxk/MG3@tEH/'




+1 (0) -1 (0) Répondre
24-04-2013, 09h12
Message : #4
Edelwin Hors ligne
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é.
+1 (0) -1 (0) Répondre
24-04-2013, 10h43 (Modification du message : 24-04-2013, 10h56 par notfound.)
Message : #5
notfound Hors ligne
#!/usr/bin/env bash
*



Messages : 687
Sujets : 47
Points: 271
Inscription : Sep 2012
RE: [Bash] Script de Backup
o/

Déjà, merci pour le partage ! C'est une bonne idée de script Wink
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 :

echo "Veuillez entrer la cause de ce backup :"\n
 


Si tu veux sauter une ligne avec le \n ça ne marchera pas si tu le mets ici !

Code BASH :

# Fonctionnant avec #!/bin/bash
echo -e "Veuillez entrer la cause de ce backup : \n"

# Fonctionnant avec #!/bin/sh
echo "Veuillez entrer la cause de ce backup : \n"
 


###############################################################################

Ensuite, tu as :
Code BASH :

echo -n "cause : "
read choix
 


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 :

#!/bin/bash

echo -e "Veuillez entrer la cause de ce backup : \n"
echo "Backup de routine     (1)"
echo "Veille d'un départ    (2)"
echo "Changement de support (3)"

while true; do
    read -p "Cause : " choix
    case $choix in
        '1')
            cause="Backup de routine effectué"
            break ;;
        '2')
            cause="Veille d'un départ"
            break ;;
        '3')
            cause="Changement de support"
            break ;;
        *)
            echo "Veuillez taper un choix correct après avoir relancé le programme" ;;
    esac
done

la_date=$(date "+%Y/%m/%d_%H:%M")
echo "$cause le $la_date" >> logs.txt
echo "$cause le $la_date" >> backup_SLAANESH/logs.txt
exit 0
 


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 Wink
+1 (2) -1 (0) Répondre


Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  Générateur mot de passe bash notfound 4 331 27-11-2012, 23h10
Dernier message: b0fh

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut