Pages : 1
#1 Le 05/11/2015, à 23:13
- FelixP
Petit script de sauvegarde
Salut !
De passage pour la première fois depuis bien deux ans, pour vous partager ce script.
Utilisant un raspberry pi, j'ai fait un joli script aux ptits oignons pour ma sauvegarde.
Sentez-vous libre de le critiquer (mais pas trop quand même ). Je pense quand même avoir fait un truc assez propre.
#!/bin/sh
USERNAME="salamandar"
RSYNC_ARGS="--progress -rltDvze"
EXCLUDE=""
LOCALDOMAIN="salamanderry"
LOCALPORT="22"
DISTDOMAIN="geekolloc.fr"
DISTPORT="2022"
help() {
cat<<EOS
Utilisation : raspi [ext] fonction arguments
fonction : help, connect, backup
EOS
}
connect() {
ssh -p $PORT $DISTANT -X
}
set_domain() {
if [[ $1 == "ext" ]]; then
DISTROOT=$USERNAME@$DISTDOMAIN:/Mammuth
PORT=$DISTPORT
else
DISTROOT=$USERNAME@$LOCALDOMAIN:/Mammuth
PORT=$LOCALPORT
fi
}
backup() {
check_dir_set
echo "$LOCALDIR -> $DISTROOT/$DISTDIR"
rsync $RSYNC_ARGS "ssh -p $PORT" $LOCALDIR $DISTROOT/$DISTDIR # --exclude $HOME/.cache --exclude Rip
}
get() {
check_dir_set
echo "$DISTROOT/$DISTDIR -> $LOCALDIR"
rsync $RSYNC_ARGS "ssh -p $PORT" $DISTROOT/$DISTDIR $LOCALDIR # --filter "- .cache"
}
check_dir_set() {
if ! $dir_is_set ; then
echo "Error, dirs are not set !"
help
exit 1
fi
}
if [[ -z "$1" ]]; then
echo "Pas d'arguments donnés !"
help
exit
fi
# Default values
set_domain int
action="help"
# Permet de vérifier qu'on a bien donné un argument de dossier
dir_is_set=false
while [[ $1 ]]
do
case "$1" in
help|--help|-h)
action="help"
shift
;;
ext)
set_domain ext
shift
;;
int)
set_domain int
shift
;;
force)
RSYNC_ARGS+=" --delete"
shift
;;
Home|home|H|h)
LOCALDIR="$HOME/"
DISTDIR="home/"
dir_is_set=true
shift
;;
Images|images|I|i)
LOCALDIR="/home/Data/Images/"
DISTDIR="Images/"
dir_is_set=true
shift
;;
Musique|musique|M|m)
LOCALDIR="/home/Musique/"
DISTDIR="Musique/"
dir_is_set=true
shift
;;
Public|public|P|p)
LOCALDIR="$HOME/Synchronisés/Public/"
DISTDIR="public/"
RSYNC_ARGS+=" -L"
dir_is_set=true
shift
;;
connect|co|--connect|-c)
action="connect"
shift
;;
backup|ba|--backup|-b)
action="backup"
shift
;;
get|download|--get|--download|-g|-dl|g|dl)
action="get"
shift
;;
edit)
action="edit"
shift
;;
*)
echo "Argument \"$1\" inconnu !"
help
exit 1
;;
esac
done
# Maintenant qu'on a lu les arguments, on peut exécuter en sérénité ce qui a été demandé
# Un argument "plus loin" écrase les options précédentes
case $action in
help)
help
;;
connect)
connect
;;
backup)
backup
;;
get)
get
;;
edit)
subl3 $0
;;
connect)
connect
;;
connect)
connect
;;
esac
exit 0
Il sera bientôt dispo sur Github ici : https://github.com/Salamandar/configs
Qu'en pensez-vous ?
Envoyé depuis mon navigateur libre sous mon os libre.
Manjaro (basé Arch) + Cinnamon, et Firefox-Nightly 44.0 !
Voyez mes astuces ici : http://doc.ubuntu-fr.org/utilisateurs/felixp
Hors ligne
#2 Le 05/11/2015, à 23:15
- FelixP
Re : Petit script de sauvegarde
Pour explications, comme ma BBox ne gère pas le loopback (merci bouygues), quand je suis en local je ne peux pas utiliser geekolloc.fr. Je dois donc utiliser le nom local de mon raspi.
Les arguments peuvent arriver dans n'importe quel ordre, sachant que le dernier sur la ligne de commande est pris en compte.
Pour sauvegarder, par exemple :
raspi backup musique
# Ou plus court :
raspi m -b
Envoyé depuis mon navigateur libre sous mon os libre.
Manjaro (basé Arch) + Cinnamon, et Firefox-Nightly 44.0 !
Voyez mes astuces ici : http://doc.ubuntu-fr.org/utilisateurs/felixp
Hors ligne
Pages : 1