Enregistrer ses données sur un serveur de sauvegarde (Linux)

Dans cet article, nous vous montrons comment sauvegarder et restaurer automatiquement vos données sur un serveur de sauvegarde. Dans le script shell ci-dessous, qui est donné à titre d'exemple, nous vous montrons également comment utiliser le stockage FTP IONOS comme serveur de sauvegarde.

Ajustez backupXX.pureserver.info, BACKUP USERNAME et BACKUP-PASSWORD en conséquence.

Remarque

Cette méthode de sauvegarde ne convient pas pour une sauvegarde complète de toutes les données sur le serveur !

Créer des sauvegardes avec un script Shell

  • Créez le fichier.netrc en tant que root. Définissez les permissions pour que seul root puisse voir et éditer le fichier :[root@host ~]# touch /root/.netrc
    [root@host ~]# chmod 600 /root/.netrc Dans /root/.netrc, ajoutez ensuite les entrées suivantes :

    machine backupXX.onlinehome-server.info
    login BACKUP-USERNAME
    password BACKUP-PASSWORD

    macdef backup
    put $1 $2
    put $1.md5 $2.md5
    quit

     

Remarque

Le mot quit dans la dernière ligne doit être suivi d'une ligne vide.

  • L'archive de sauvegarde est stockée sur le serveur avant la sauvegarde. Ceci doit être fait sur /home :
    [root@host ~]# mkdir /home/backup
    [root@host ~]# chmod 700 /home/backup

  • Le script de sauvegarde lui-même est stocké dans /root/bin/simple-backup.sh. Créez le répertoire /root/bin s'il n'existe pas encore :
    [root@host ~]# mkdir /root/bin Créez le script de sauvegarde et enregistrez-le sous /root/bin/simple-backup.sh :

    #!/bin/sh

    # Nom du fichier de sauvegarde
    BACKUP_FILE="backup.tar.gz"

    # Emplacement temporaire de l'archive de sauvegarde
    BACKUP_TMP="/home/backup/"

    # Chemin d'accès complet vers la sauvegarde
    BACKUP=${BACKUP_TMP}${BACKUP_FILE}

    # Dossiers qui doivent être sauvegardés
    # Dans cet exemple, il s'agit des pages web du client et de ses emails
    BACKUP_DATA="/home/htdocs /var/spool/mail"

    # Nom d'hôte du serveur de sauvegarde
    BACKUP_SERVER="backupXX.pureserver.info"

    # Sauvegarde de l'ancien UMASK
    UMASK=`umask`

    umask 0077
    tar --exclude=${BACKUP} -czf ${BACKUP} ${BACKUP_DATA} 2>/dev/null
    md5sum ${BACKUP} > ${BACKUP}.md5
    echo "\$ backup ${BACKUP} ${BACKUP_FILE}" | pftp ${BACKUP_SERVER} >/dev/null
    rm -f ${BACKUP} ${BACKUP}.md5
    umask ${UMASK}

    Pour BACKUP_SERVER="backupXX.pureserver.info" entrez backupXX.onlinehome-server.info à la place de backupXX.pureserver.info.

  • Fournissez au script les permissions correctes :
    [root@host ~]# chmod 700 /root/bin/simple-backup.sh

  • Vous pouvez configurer une tâche cron pour automatiser la sauvegarde. Pour ce faire, créez le fichier /etc/cron.d/simple-backup. Définissez la tâche cron pour une sauvegarde quotidienne sous la forme suivante :
    MINUTE HOUR * * * * root /root/bin/simple-backup.sh Pour MINUTE (0-59) et STUNDE (0-24) entrez l'heure souhaitée pour la sauvegarde.

  • Remarque
  • Lors de la sauvegarde sur le serveur FTP, la dernière sauvegarde sur le serveur est écrasée.

Restaurer le fichier de sauvegarde

Vous pouvez copier la sauvegarde du serveur de sauvegarde sur votre serveur et la décompresser ensuite comme suit :

[root@host ~]# curl ftp://BACKUP-USERNAME:BACKUP-PASSWORD@backup443.onlinehome-server.info/backup.tar.gz > backup.tar.gz

[root@host ~]# tar -xvf backup.tar.gz