vanutsteen.nl => nerds only A blog on rails, php, computing, my bass guitar and stuff

rsync retry (rrsync)

on in Linux

Met onze super-stabiele connectie op het kantoor wil rsync er nog wel eens uitklappen. Dus als je dan ’s ochtends kijkt hoe ver ‘ie is kom je er achter dat rsync gestopt is. Daarom een rrsync. Gebasseerd op deze link: http://blog.iangreenleaf.com/2009/03/rsync-and-retrying-until-we-get-it.html maar iets beter gemaakt zodat het rsync commando er niet hard in staat:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/bash

### ABOUT
### Runs rsync, retrying on errors up to a maximum number of tries.
### Simply edit the rsync line in the script to whatever parameters you need.

# Trap interrupts and exit instead of continuing the loop
trap "echo Exited!; exit;" SIGINT SIGTERM

MAX_RETRIES=50
i=0
# Set the initial return value to failure
false

while [ $? -ne 0 -a $i -lt $MAX_RETRIES ]
do
    i=$(($i+1))
    `which rsync` $*
done

if [ $i -eq $MAX_RETRIES ]
then
    echo "Hit maximum number of retries, giving up."
fi

Comments