[gull] Équivalent de Time Machine

Pierre Maitre po.maitre at gmail.com
Fri Oct 16 09:03:26 CEST 2020


Le jeu. 1 oct. 2020 à 11:47, felix <felix at f-hauri.ch> a écrit :

>    (Nota: je préfère ``tirer les données depuis la machine de backups'',
>         plutôt que d'avoir un accès à la machine de backups depuis une
>         machine en production)

Bonjour à tous
Je rebondis sur cette remarque pertinente de Félix. Depuis que
l'incitation à des économies d'énergie nous fait éteindre les machines
quand on ne les utilise pas (... même le standby consomme beaucoup...
j'ai mesuré), le backup en "pull" pose un problème parce que lorsque
le backup est initié sur le serveur, la machine à backuper peut être
éteinte. J'ai trouvé un joli script (il n'est pas de moi) que le
crontab du serveur "backup"  pourra appeler chaque heure et qui teste
si la machine qu'il faut  backuper est allumée. Si oui et que le
dernier backup date de plus que x heures, le backup est initié. Le
script est écrit pour rsnapshot, mais on peut évidemment adapter.
J'ai pensé que ça pourrait être utile à certains.

Pierre-Olivier Maitre

Réf: https://bbs.archlinux.org/viewtopic.php?id=120127
J'ai adapté un peu.

Exemple: on veut faire le backup de l'ordinateur "station0":

#!/bin/bash
if ! /bin/ping -c 1 192.168.1.116 &> /dev/null; then echo "station0
not available"; exit 1; fi
# pour remote host: if ! /usr/bin/nping --tcp -p (port) -c1
remotehost.net  &> /dev/null; then echo....

DATEDIR=/var/lib/rsnap_station0
LASTMONTHLY=$(stat -c %X $DATEDIR/monthly-station0)
LASTWEEKLY=$(stat -c %X $DATEDIR/weekly-station0)
LASTDAILY=$(stat -c %X $DATEDIR/daily-station0)
NOW=$(date +%s)
MONTH=2415600   # 27 days, 23 hours
WEEK=601200   # 6 days, 23 hours
DAY=82800   # 23 hours

SUCCESS=0

if [[ "$(($NOW-$LASTMONTHLY))" -gt "$MONTH" ]]; then
    echo "Starting monthly snapshot" > /var/log/rsnapshot.station0.last
    /usr/bin/rsnapshot  -v -c /etc/rsnapshot.station0.conf  monthly
2>&1 >> /var/log/rsnapshot.station0.last  || SUCCESS="1"

    if [[ $SUCCESS == "0" ]]; then
        echo "Monthly snapshot successful" >> /var/log/rsnapshot.station0.last
        touch $DATEDIR/monthly-station0
    else
        echo "Error(s) with monthly snapshot" >>
/var/log/rsnapshot.station0.last
    fi
fi

SUCCESS=0

if [[ "$(($NOW-$LASTWEEKLY))" -gt "$WEEK" ]]; then
    echo "Starting weekly snapshot" > /var/log/rsnapshot.station0.last
    /usr/bin/rsnapshot -v -c /etc/rsnapshot.station0.conf  weekly 2>&1
>> /var/log/rsnapshot.station0.last  || SUCCESS="1"

    if [[ $SUCCESS == "0" ]]; then
        echo "Weekly snapshot successful" >> /var/log/rsnapshot.station0.last
        touch $DATEDIR/weekly-station0
    else
        echo "Error(s) with weekly snapshot"    >>
/var/log/rsnapshot.station0.last
    fi
fi

SUCCESS=0

if [[ "$(($NOW-$LASTDAILY))" -gt "$DAY"  || "$1" == "-f" ]]; then
    echo "Starting daily snapshot" > /var/log/rsnapshot.station0.last
   /usr/bin/rsnapshot -v -c /etc/rsnapshot.station0.conf  daily 2>&1
>> /var/log/rsnapshot.station0.last  || SUCCESS="1"
#   /usr/bin/rsnapshot -c /etc/rsnapshot.station0.conf  daily 2>&1
|/usr/local/bin/rsnapreport.pl | mail -s "laptop daily" me at myemail.com
 || SUCCESS="1"

    if [[ $SUCCESS == "0" ]]; then
        echo "Daily snapshot successful" >> /var/log/rsnapshot.station0.last
        touch $DATEDIR/daily-station0
    else
        echo "Error(s) with daily snapshot" >> /var/log/rsnapshot.station0.last
    fi
fi


More information about the gull mailing list