Comment sauvegarder un serveur Centos complet?

24

Il y a quelques semaines, je suis passé d'un serveur dédié à un VPS. Maintenant que tout fonctionne bien sur le VPS, je voudrais fermer le serveur dédié et fermer mon compte avec la société d'hébergement.

Pour la tranquillité d'esprit et pour être plus sûr, je voudrais faire une sauvegarde complète du serveur avant de l'arrêter.

Le mieux serait une sauvegarde que je pourrais parcourir si je trouve que j'ai besoin de quelque chose dans la sauvegarde.

Quelle serait la meilleure solution en ligne de commande?

Mise à jour :

Moyen: réseau

benjisail
la source

Réponses:

28

Le meilleur outil à utiliser pour cela est probablement le vidage, qui est un outil Linux standard et vous donnera tout le système de fichiers. Je ferais quelque chose comme ça:

/sbin/dump -0uan -f - / | gzip -2 | ssh -c blowfish [email protected] dd of=/backup/server-full-backup-`date '+%d-%B-%Y'`.dump.gz

Cela va faire un vidage du système de fichiers de / (assurez-vous que vous n'avez pas besoin de vider d'autres montages!), Le compresser avec gzip et le transférer sur un serveur distant (backupserver.example.com), le stocker dans / backup / . Si vous devez ultérieurement parcourir la sauvegarde que vous utilisez restaurer:

restore -i

Une autre option, si vous n'avez pas accès au vidage, est d'utiliser tar et de faire quelque chose comme

tar -zcvpf /backup/full-backup-`date '+%d-%B-%Y'`.tar.gz --directory / --exclude=mnt --exclude=proc --exclude=tmp .

Mais tar ne gère pas non plus les modifications du système de fichiers.

pehrs
la source
cette commande de vidage prend également en charge les programmes installés? comme nginx, etc.
Thale
Le vidage est une copie littérale du système de fichiers, avec tout ce qu'il contient. Tant que vous n'en avez pas plus d'un (vérifiez en exécutant mount), c'est tout ce dont vous avez besoin.
Bill Weiss
Je reçois ceci-bash: /sbin/dump: No such file or directory
Lucas Bustamante
@LucasB Vous devrez peut-être installer le vidage. Sur Ubuntu, vous faites quelque chose commesudo apt-get install dump
pehrs
@pehrs comment restaurer à l'aide du .gzfichier? Pouvez-vous ajouter cela dans votre réponse? Ce serait vraiment utile.
Bouteille rouge
10

Si vous souhaitez sauvegarder de Linux vers Linux, je n'utiliserais pas de vidage, car cela n'est pas pratique lorsque vous devez accéder à quelque chose dans le fichier de sauvegarde. L'utilisation rsyncde SSH pour effectuer une sauvegarde complète du système devrait convenir dans la plupart des cas:

rsync -aAXv --delete-after --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / user@server:backup-folder

Cela gardera tout important et vous permettra de parcourir la sauvegarde sans étapes supplémentaires.

Vous voudrez peut-être ajouter l' --deleteoption de rsync si vous l'exécutez plusieurs fois dans le même dossier de sauvegarde. Dans ce cas, assurez-vous que le chemin source ne se termine pas /*, sinon cette option n'aura d'effet que sur les fichiers à l'intérieur des sous-répertoires du répertoire source, mais elle n'aura aucun effet sur les fichiers résidant directement à l'intérieur du répertoire source.

Rafael Bugajewski
la source
3

Sur quel support allez-vous stocker la sauvegarde? Si vous sauvegardez sur le réseau, je monterais sshfs / nfs ma destination sur le serveur source et exécuter quelque chose comme:

tar cvjf /<remote_mnt>/<point>/source-030810-full.tar.bz2 /* --exclude=/proc --exclude=/dev --exclude=/sys --exclude=/tmp --exclude=/<remote_mnt>

Notez que cela n'a pas été testé, juste ma pensée générale que vous voudrez peut-être exclure plus ou moins que cela.

d34dh0r53
la source
3

J'utilise la commande décrite ci-dessus à partir de pehrs, mais modifiée pour une utilisation ftp. Échantillon Crontab:

30 3 1 * * sudo /sbin/dump -0uan -f server-full-backup-root-`date '+%d-%B-%Y'`.dump / && gzip -1 /<path_to_backup_file>/server-full-backup-root-`date '+%d-%B-%Y'`.dump
50 * * * * lftp -f upload.x

upload.x contient les informations d'identification ftp et les règles de téléchargement:

open -u user,password -p 21 192.168.1.1
mirror -c -e -R /<path_to_backup_folder> /<path_to_remote_folder_without_trailing_slash>
exit

Remarque 1: lftp peut entraîner une utilisation élevée du processeur lorsque la destination est inaccessible lors de la tentative de reconnexion. Étant donné que de nombreux VPS d'hébergement peuvent être réinitialisés dans de tels cas, je suggère de surveiller la charge du processeur pour tuer le processus lftp en empêchant l'arrêt du serveur par le propriétaire de l'hôte. Un exemple de charge moyenne> 1,33 pour les processus lftp (et dropbox). Malheureusement, je ne me souviens pas de la source du code initial, grâce à quelqu'un:

Crontab */5 * * * * /home/cms/cron/loadmon.sh

#!/bin/bash
FROM_EMAIL_ADDRESS=cms
  trigger=1.33
  load=`cat /proc/loadavg | awk '{print $1}'`
  response=`echo | awk -v T=$trigger -v L=$load 'BEGIN{if ( L > T){ print "greater"}}'`
if [[ $response = "greater" ]]
then
  killall dropbox lftp
  nice -n 19 sh /cms/.dropbox-dist/dropboxd
  sar -q | mailx -s "High load on server - [ $load ]" r***[email protected]
fi

Remarque 2: l' utilitaire de vidage peut ne pas fonctionner sur OpenVZ VPS ou certains autres serveurs virtuels.

Rapekaz
la source
2

avez-vous entendu parler de Bacula ?

Bacula est un ensemble de programmes informatiques Open Source, prêts pour l'entreprise, qui vous permettent (ou à l'administrateur système) de gérer la sauvegarde, la récupération et la vérification des données informatiques sur un réseau d'ordinateurs de différents types. Bacula est relativement facile à utiliser et efficace, tout en offrant de nombreuses fonctionnalités avancées de gestion du stockage qui facilitent la recherche et la récupération de fichiers perdus ou endommagés. En termes techniques, il s'agit d'un programme de sauvegarde Open Source, prêt pour l'entreprise et basé sur le réseau.

dani.jtk
la source