# Petit script rsync (incrémentale) qui plante

**URL:** <https://www.debian-fr.org/t/petit-script-rsync-incrementale-qui-plante/86388>\
**Category:** Programmation\
**Created:** [Avril 11, 2022, 12:08 UTC](https://www.debian-fr.org/t/petit-script-rsync-incrementale-qui-plante/86388 "2022-04-11T00:08:47Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Crapot](https://www.debian-fr.org/user_avatar/www.debian-fr.org/crapot/32/14932_2.png) [@Crapot](https://www.debian-fr.org/u/Crapot)\
**Post date:** [Avril 11, 2022, 12:08 UTC](https://www.debian-fr.org/t/petit-script-rsync-incrementale-qui-plante/86388/1 "2022-04-11T00:08:47Z")

</div>

Bonsoir

Voici j’ai un script **~/bin/rsinc.sh** (_rs:_ rsync, _inc_: incrémentale) qui me sufit pour mes sauvegarde de mon Home.  
Il garde en mémoire onze dossiers de sauvegarde (après cela, il supprime la dernière afin de créer une nouvelle et ce même si il n’y a pas de changement depuis la dernière sauvegarde)

Je l’utilise régulièrement sans problèmes depuis longtemps.  
Je l’ai trouvé sur un site dont avec le temps je ne peux vous donner le lien.

Mais depuis deux trois jours, celui-ci s’exécute et ferme la console (je ne sais pas bien quand exactement : vers le milieu ? une fois fini ? …)  
mais cela n’arrivait pas auparavant.  
J’utilise urxvt comme terminal

Le voici:

```bash
#!/bin/sh
TARGET=/media/Gw/hdext/Rsinc/Bidule
SOURCE=/home/
EXCLUSION=/home/Gw/.config/rsync-exclude.list
/bin/rm -Rf $TARGET/backup.old
/bin/mv $TARGET/backup.9 $TARGET/backup.old
/bin/mv $TARGET/backup.8 $TARGET/backup.9
/bin/mv $TARGET/backup.7 $TARGET/backup.8
/bin/mv $TARGET/backup.6 $TARGET/backup.7
/bin/mv $TARGET/backup.5 $TARGET/backup.6
/bin/mv $TARGET/backup.4 $TARGET/backup.5
/bin/mv $TARGET/backup.3 $TARGET/backup.4
/bin/mv $TARGET/backup.2 $TARGET/backup.3
/bin/mv $TARGET/backup.1 $TARGET/backup.2
/bin/mv $TARGET/backup.0 $TARGET/backup.1
sleep 1
/usr/bin/rsync -av --no-o --exclude-from=$EXCLUSION --delete --safe-links --link-dest=$TARGET/backup.1 $SOURCE $TARGET/backup.0

```

donc voilà … cela est arrivé lorsque de 6 dossiers de backup je suis passé à 11.  
–merci–  
🙂

---

<div class="post-metadata">

**Author:** ![jipete](https://www.debian-fr.org/user_avatar/www.debian-fr.org/jipete/32/11729_2.png) [@jipete](https://www.debian-fr.org/u/jipete)\
**Post date:** [Avril 11, 2022, 12:16 UTC](https://www.debian-fr.org/t/petit-script-rsync-incrementale-qui-plante/86388/2 "2022-04-11T12:16:41Z")

</div>

Bonjour,

> [@Crapot](#):
>
> cela est arrivé lorsque de 6 dossiers de backup je suis passé à 11.

sans plus d’informations, faut encore sortir la boule de cristal…

Donc :

- que disent les logs de la machine, juste après le plantage ?
- est-ce que l’espace disque est suffisant sur la cible ?

Le reste on verra plus tard.

---

<div class="post-metadata">

**Author:** ![choops](https://www.debian-fr.org/user_avatar/www.debian-fr.org/choops/32/8109_2.png) [@choops](https://www.debian-fr.org/u/choops)\
**Post date:** [Avril 11, 2022, 3:04 UTC](https://www.debian-fr.org/t/petit-script-rsync-incrementale-qui-plante/86388/3 "2022-04-11T15:04:03Z")

</div>

Bonjour

Une idée pour pister tes erreurs:  
ajoute la ligne suivante en 2ème ligne  
`set -e`  
et lance ton script à la main:  
`~/bin/rsync.sh`  
Ton script s’arrêtera sur l’erreur et te donnera le message d’erreur correspondant

Pour du plus causant, tu peux mettre «&nbsp;`set -ex`&nbsp;» en 2ème ligne, ça te fera un retour de DEBUG plus complet

---

<div class="post-metadata">

**Author:** ![bech](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/b5ac83/32.png) [@bech](https://www.debian-fr.org/u/bech)\
**Post date:** [Avril 12, 2022, 12:47 UTC](https://www.debian-fr.org/t/petit-script-rsync-incrementale-qui-plante/86388/4 "2022-04-12T00:47:45Z")

</div>

A mon avis, ça peut venir de la dernière ligne.

Pour s’en assurer, essayer de rajouter à la fin

```
echo "C'est fini !"
sleep 5
```

---

<div class="post-metadata">

**Author:** ![Almtesh](https://www.debian-fr.org/user_avatar/www.debian-fr.org/almtesh/32/10312_2.png) [@Almtesh](https://www.debian-fr.org/u/Almtesh)\
**Post date:** [Avril 13, 2022, 10:52 UTC](https://www.debian-fr.org/t/petit-script-rsync-incrementale-qui-plante/86388/5 "2022-04-13T10:52:12Z")

</div>

> [@Crapot](#):
>
> ```bash
> /bin/mv $TARGET/backup.8 $TARGET/backup.9
> /bin/mv $TARGET/backup.7 $TARGET/backup.8
> /bin/mv $TARGET/backup.6 $TARGET/backup.7
> /bin/mv $TARGET/backup.5 $TARGET/backup.6
> /bin/mv $TARGET/backup.4 $TARGET/backup.5
> /bin/mv $TARGET/backup.3 $TARGET/backup.4
> /bin/mv $TARGET/backup.2 $TARGET/backup.3
> /bin/mv $TARGET/backup.1 $TARGET/backup.2
> /bin/mv $TARGET/backup.0 $TARGET/backup.1
> 
> ```

```bash
for i in $(seq 8 -1 0);do
	/bin/mv $TARGET/backup.$i $TARGET/backup.$(($i-1))
done

```

c’est mieux, je pense.  
Mais ton problème n’est pas là, enfin, je pense, ton code marche quand même.

---

<div class="post-metadata">

**Author:** ![dindoun](https://www.debian-fr.org/user_avatar/www.debian-fr.org/dindoun/32/4281_2.png) [@dindoun](https://www.debian-fr.org/u/dindoun)\
**Post date:** [Avril 13, 2022, 1:18 UTC](https://www.debian-fr.org/t/petit-script-rsync-incrementale-qui-plante/86388/6 "2022-04-13T13:18:26Z")

</div>

salut  
je ne comprends pas bien la présence de trois dossiers

```auto
$TARGET/backup.1 $SOURCE $TARGET/backup.0

```

sinon la question sh/bash

les droits

---

<div class="post-metadata">

**Author:** ![Crapot](https://www.debian-fr.org/user_avatar/www.debian-fr.org/crapot/32/14932_2.png) [@Crapot](https://www.debian-fr.org/u/Crapot)\
**Post date:** [Avril 25, 2022, 6:59 UTC](https://www.debian-fr.org/t/petit-script-rsync-incrementale-qui-plante/86388/7 "2022-04-25T06:59:07Z")

</div>

Merci

J’ai directement mis en dessous du **#!/bin/sh** la ligne **’ set -ex’** …  
en réalité si je lance mon script un fois dans le dossier l’appartenant avec **sh mon-rsync.sh**  
tout à l’air d’être ok. (le terminal reste en place et ne se barre pas)

c’est juste donc à mon avis au niveau de l’alias que j’ai créer dans **~/.shell\_aliases** …  
`alias rsi='exec ~/bin/rsinc.sh'`

dans mon terminal, je lance donc **rsi** + _Enter_ … l’opération à l’air de bien se dérouler avec cette ligne rajouter **set -e** mais à la fin, la fenêtre du terminal quitte et je me retrouve sans celle-ci.  
Avant je n’avais pas ce comportement …

–

```
echo "C'est fini !"

```

`sleep 5`

ajouté en fin de script prouve bien que toutes les op. sont réussies

–

@Almtesh  
for i in $(seq 8 -1 0);do  
/bin/mv $TARGET/backup.$i $TARGET/backup.$(($i-1))  
done

Je ne comprend pas cette phrase  
cela remplacerait ma dizaine de ligne pour placer backup.N en backup.N+1 ?

@dindoun  
` $TARGET/backup.1`

c’est pour:  
`--safe-links --link-dest=$TARGET/backup.1`

alors mes explications sont surrement à rectifié (j’ai pas le bon langage)  
mais cela permet de créer un lien entre les fichiers existant déjà et qui n’ont pas bougé depuis.  
ainsi tu évites de les ré-écrire lors de la nouvel backup et tu économise du temps, de la place et de l’usure de disque.  
je ne sais trop comment en expliquer plus.  
mais si jamais tu copies avec `rsync` ou `cp` ton dossier parent à toutes ces backup, tu inscriras sur la destination de cette action, autant de fois les fichier identique par dossier backup-source et juste lié par ce --safe-link dans ses dossier backup-(copié) respectif, qu’il n’y a de liens entre les différents dossiers backup à la source. sorte de lien symbolique ? ou carrément un ?  
(j’avoue à me relire, sais plus trop ce que je dis… sorry)

voilà

merci !!  
a+

---

<div class="post-metadata">

**Author:** ![Crapot](https://www.debian-fr.org/user_avatar/www.debian-fr.org/crapot/32/14932_2.png) [@Crapot](https://www.debian-fr.org/u/Crapot)\
**Post date:** [Avril 25, 2022, 7:10 UTC](https://www.debian-fr.org/t/petit-script-rsync-incrementale-qui-plante/86388/8 "2022-04-25T07:10:11Z")

</div>

@dindoun

J’ai retrouvé une explication qui avait été copier du web  
celui ci met en explication a entre autre l’option **–safe-links**

_Chaque sauvegarde est une image complètes du dossier source._  
_Mais les fichiers qui y sont identiques_  
_ne sont stocké qu’une seul fois sur le dossier target._  
_Pour restaurer une ancienne sauvegarde:_  
_Faire un rsync complet de celle choisie._
