#1 Le 02/11/2017, à 00:28
- Le Barde
Boucle for avec "screen -dmS" pour la sauvegarde
Salut à tous,
Je me suis fait un script pour la sauvegarde, que je mets en bas du post. En très vite, ça appelle plusieurs fois rsync de cette manière :
rsync -av --ignore-errors ma-source ma-destination
Pour pouvoir surveiller tout ça, je le mettrais bien dans un screen, de cette manière :
screen -dmS sauvegarde rsync -av --ignore-errors ma-source ma-destination
Le problème c'est que ça va tout faire en parallèle... Je voudrais qu'on passe au Rsync suivant seulement quand c'est terminé.
Comment adapter mon script ? Merci d'avance !
Le Barde.
Le script
#!/bin/sh
# Script de sauvegarde. Celui-ci doit être appelé le plus souvent possible.
#
# Variables de travail
#
$HOME=/home/lebarde
SAVE_DIRS="$HOME/bin $HOME/dev $HOME/Documents
$HOME/Dropbox $HOME/texte
$HOME/.config $HOME/.filezilla $HOME/.fonts
$HOME/.local $HOME/.ssh
SAVE_DEST=/mnt/red/sauvegarde
COMMAND="rsync -av --ignore-errors"
#
# Sauvegarde
#
for i in $SAVE_DIRS; do
$COMMAND $i $SAVE_DEST
# screen -dmS sauvegarde $COMMAND $i $SAVE_DEST
done
#
# Fin du script
#
exit 0
Hors ligne
#2 Le 02/11/2017, à 01:34
- Watael
Re : Boucle for avec "screen -dmS" pour la sauvegarde
salut,
définis un fichier de log pour surveiller l'avancement de rsync.
tu pourras lire le fichier journal en temps réél avec less +F
Dernière modification par Watael (Le 02/11/2017, à 13:05)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 02/11/2017, à 09:31
- kholo
Re : Boucle for avec "screen -dmS" pour la sauvegarde
salut,
ou en suivant le PID :
PID=$!
dans le script tu peux l'envoyer dans un fichier
puis, comme un service
while [ -e /proc/$PID ]; do
...
done
Hors ligne
#4 Le 02/11/2017, à 12:52
- Le Barde
Re : Boucle for avec "screen -dmS" pour la sauvegarde
Merci de vos réponses !
En fait je me suis rendu compte que rsync accepte plusieurs sources. Du coup je peux tout mettre dans un seul rsync. Ça, ça fonctionne.
Maintenant, je n'arrive pas à le faire fonctionner dans un screen.
Voici ce que je fais :
#screen -dmS sauvegarde "$COMMAND $SAVE_DIRS $SAVE_DEST" # Ne semble pas fonctionner
$COMMAND $SAVE_DIRS $SAVE_DEST # fonctionne bien
En fait le "screen -dmS" crée bien un screen, mais je n'ai rien d'exécuté à l'intérieur. J'ai simplement un screen comme d'habitude.
Bizarre non ?
Dernière modification par Le Barde (Le 02/11/2017, à 12:53)
Hors ligne
#5 Le 02/11/2017, à 13:07
- Watael
Re : Boucle for avec "screen -dmS" pour la sauvegarde
l'emploi de screen n'est pas justifié.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#6 Le 02/11/2017, à 13:10
- kholo
Re : Boucle for avec "screen -dmS" pour la sauvegarde
oui...
$COMMAND $SAVE_DIRS $SAVE_DEST &
PID=$!
while...
Hors ligne