Salvare dati su un server di backup (Linux)

In questo articolo ti mostriamo come eseguire automaticamente il backup e il ripristino di dati su un server di backup. Nello script shell qui sotto, che è mostrato come esempio, ti spieghiamo anche come utilizzare FTP Storage come server di backup.

Modifica backupXX.pureserver.info, NOME UTENTE DEL BACKUP e PASSWORD DEL BACKUP di conseguenza.

Nota bene:

Questo metodo di backup non è adatto per un backup completo di tutti i dati sul server!

Creare un backup con uno script shell

  • Crea il file .netrc come root. Imposta i permessi in modo che solo root possa visualizzare e modificare il file. [root@host ~]# touch /root/.netrc
    [root@host ~]# chmod 600 /root/.netrc Successivamente aggiungi le seguenti voci a /root/.netr:

    machine backupXX.onlinehome-server.info
    login NOME UTENTE DEL BACKUP
    password PASSWORD DEL BACKUP

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

Nota bene:

La parola quit nell'ultima riga deve essere seguita da una riga vuota.

  • L'archivio di backup viene memorizzato sul server prima del backup. Questo dovrebbe essere fatto nella cartella /home:
    [root@host ~]# mkdir /home/backup
    [root@host ~]# chmod 700 /home/backup

  • Lo script di backup stesso è memorizzato su /root/bin/simple-backup.sh. Crea la directory /root/bin se questa non esiste già.
    [root@host ~]# mkdir /root/bin Crea lo script di backup e salvalo come /root/bin/simple-backup.sh.

    #!/bin/sh

    # Nome del file di backup
    BACKUP_FILE="backup.tar.gz"

    # posizione di memoria temporanea dell'archivio di backup
    BACKUP_TMP="/home/backup/"

    # percorso completo al backup
    BACKUP=${BACKUP_TMP}${BACKUP_FILE}

    # Directory che devono essere salvate
    # in questo esempio sono le e-mail e i siti web del cliente
    BACKUP_DATA="/home/htdocs /var/spool/mail"

    # Nome host del server di backup
    BACKUP_SERVER="backupXX.pureserver.info"

    # fare il backup dell'UMASK vecchio
    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}
    Nella riga BACKUP_SERVER="backupXX.onlinehome-server.info" inserisci il nome host del server di backup.

  • Assegna allo script i diritti corretti:
    [root@host ~]# chmod 700 /root/bin/simple-backup.sh

  • È possibile impostare un cronjob per automatizzare il backup. Per farlo, crea il file /etc/cron.d/simple-backup. Qui inserisci il cronjob per un backup giornaliero nel seguente formato:
    MINUTO ORA * * * root /root/bin/simple-backup.sh Per MINUTO (0-59) e ORA (0-24), imposta l'ora desiderata per il backup.

  • Nota bene:
  • Quando si esegue il backup sul server FTP, l'ultimo backup sul server viene sovrascritto.

Ripristinare un file di backup

Se lo desideri, puoi ad esempio copiare il backup dal server di backup e successivamente decomprimere il file nel tuo server:
[root@host ~]# curl ftp://NOME UTENTE DEL BECKUP:PASSWORD DEL BACKUP@backup443.onlinehome-server.info/backup.tar.gz > backup.tar.gz

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