1 votes

Rsync avec l'aide de crontab

Je ne suis pas un grand utilisateur de Linux, et j'essaie juste de sauvegarder les fichiers de mon serveur en cas de panne de disque. J'ai actuellement un SSD qui exécute des conteneurs docker pour un serveur de médias, et les médias sont stockés sur un pool ZFS de 4 disques dans une matrice RAIDZ. J'essaie de comprendre comment rsynchroniser mon répertoire crontab vers le pool ZFS, et éventuellement le mettre sur un usb pour être sûr que mes fichiers .env ne soient pas perdus si le SSD tombe en panne. Je ne sais pas si j'ai formulé correctement tout ce que j'essaie de faire passer, alors désolé ! Je suppose que cela aurait plus de sens de faire simplement comme /home /mnt (nom du zpool).

rsync -av --delete /home /mnt- 

Cette commande semble-t-elle correcte ?

Voici à quoi ressemble mon cronjob de sauvegarde Docker, ainsi que le scrub ZFS.

# m h  dom mon dow   command
0 2 * * * /home/<USER>/.docker/main.sh -b max

# zpool scrub every month
0 2 1 * * /sbin/zpool scrub mnt
0 13 1 * * /sbin/zpool status

Merci d'avance !

1voto

Jeff Points 1446

Si vous cherchez à utiliser rsync pour sauvegarder régulièrement des fichiers, vous voudrez probablement effectuer quelques changements. --delete supprimera le fichier que vous avez supprimé, ce qui signifie si vous supprimez accidentellement tous vos fichiers y luego rsync -av --delete /home /mnt- exécute cela supprimera toutes vos sauvegardes . Si tout ce que vous voulez faire est de faire une copie alors cela fonctionnera, et cela vous sauvera probablement d'un disque défectueux mais vous devriez réfléchir à ce dont vous essayez de vous protéger. Je vous suggère de jeter un coup d'œil à ce post sur stack overflow si vous utilisez rsync comme outil de sauvegarde régulier Utiliser rsync pour la sauvegarde sans écrasement .

Je réalise qu'il existe de nombreux articles suggérant de faire ce que vous faites, howtogeek linux.com et bien que cela fonctionne très bien en tant que sauvegarde ponctuelle et que cela soit même acceptable si vous voulez exécuter vos sauvegardes manuellement lorsque vous savez que votre ordinateur est dans un état qui vous convient. Il est risqué de le faire automatiquement. Je suggère d'utiliser le outil intégré pour les sauvegardes (recherchez simplement backup) car il gère le cas de la suppression ou de l'écrasement de fichiers par erreur et vous pouvez le configurer pour qu'il fonctionne chaque semaine/mois etc. et vous pouvez définir la durée pendant laquelle vous souhaitez conserver les sauvegardes. mais si vous essayez simplement de vous protéger contre une panne de disque, ce que vous avez est probablement correct.

0voto

Ray Butterworth Points 1169

Rsync(1) possède une excellente option "--archive".

Il constitue mon principal moyen de sauvegarde pour les cas où je souhaite occasionnellement voir à quoi ressemblaient mes fichiers à un moment donné dans le passé.

Il se trouve que j'utilise une clé USB branchée en permanence à l'arrière de mon moniteur, mais il aurait pu s'agir d'un périphérique distinct qui n'est pas physiquement proche de mon ordinateur si j'avais voulu une sauvegarde complète pour la récupération du système de fichiers.

C'est le script que j'utilise pour les sauvegardes, exécuté en tant que root à 23:45 chaque jour :

#!/bin/bash -e
# This is run as root at the end of the day
do what you want.

(   echo ">>>>>>>>>>>>>>>>>>>>>>>" $(date)
    today=$(date +%Y-%m-%d)
    month=$(date +%Y-%m)
    # USB backups
    cd /media/ray/Backup-Ray
    rsync --archive --one-file-system --delete --backup --backup-dir="../../$today/etc" "/etc/" "mostrecent/etc/"
    rsync --archive --one-file-system --delete --backup --backup-dir="../../$today/home" --exclude=".config/google-chrome/" --exclude=".cache/" --exclude=".local/share/zeitgeist/" --exclude="Downloads/" "/home/" "mostrecent/home/"
    rsync --archive $today/ $month/
    echo "<<<<<<<<<<<<<<<<<<<<<<<" $(date)
) &>>/home/ray/Log/root.out

exit 0

Tous les fichiers modifiés et supprimés sont préservés. Il est facile d'utiliser les outils Unix standard pour examiner et récupérer les fichiers :

$ cd /media/ray/Backup-Ray
$ ls -l {,*}/home/ray/public/Log/wait.xhtml
-rw-r--r-- 1 ray ray 14002 Dec  3 21:04 2018-12-16/home/ray/public/Log/wait.xhtml
-rw-r--r-- 1 ray ray 14102 Dec 16 09:28 2018-12-17/home/ray/public/Log/wait.xhtml
-rw-r--r-- 1 ray ray 14202 Dec 17 20:47 2018-12-20/home/ray/public/Log/wait.xhtml
-rw-r--r-- 1 ray ray 14302 Dec 20 15:12 2018-12-25/home/ray/public/Log/wait.xhtml
-rw-r--r-- 1 ray ray 14402 Dec 25 21:21 2018-12-26/home/ray/public/Log/wait.xhtml
-rw-r--r-- 1 ray ray 14402 Dec 25 21:21    2018-12/home/ray/public/Log/wait.xhtml
-rw-r--r-- 1 ray ray 14452 Dec 26 18:43        /home/ray/public/Log/wait.xhtml
-rw-r--r-- 1 ray ray 14452 Dec 26 18:43 mostrecent/home/ray/public/Log/wait.xhtml

Seul le répertoire "mostrecent" est volumineux.

Le répertoire d'accumulation mensuel (2018-12) contient les changements les plus récents tout au long du mois. Il n'est pas nécessaire de faire cette étape, mais lorsque j'ai besoin de gagner de l'espace, cela me permet de supprimer toutes les mises à jour quotidiennes pour ce mois (Dans un an, je pourrais me soucier de savoir à quoi ressemblaient les choses à la fin du mois de décembre, mais pas tellement de savoir comment les choses ont changé au cours du mois).

Vous devrez évidemment modifier la fréquence, les horodatages, etc., mais le même mécanisme devrait permettre d'effectuer des sauvegardes régulières.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X