Que peut-on voir que rsync ne peut pas?
-
10-07-2019 - |
Question
Je souhaite copier un serveur Linux complet qui va être mis hors service sur le réseau afin que nous soyons sûrs que rien ne soit perdu.
J'ai fait du /
et on m'a dit qu'il y avait 60 Go de moins / /
Ensuite, j'ai fait rsync -r / root @ serveur_fichiers: / old-server
et en faisant du
dans le répertoire old-server
I a 22 Go.
Alors, pourquoi cette différence? Y a-t-il quelque chose que du
peut voir mais que rsync
ne peut pas copier?
La solution
Vous avez probablement supprimé des fichiers qui ne peuvent pas encore être désalloués car ils contiennent des descripteurs de fichiers ouverts. (Je ne savais pas que du du verrait leur utilisation, mais certains tests l'ont montré.) Vous pouvez rechercher ceci en utilisant lsof . D'après mon expérience, les deux causes principales en sont la suppression des journaux Apache sans supprimer le fichier httpd et la suppression des tables mysql du système de fichiers plutôt qu'en utilisant DROP TABLE.
Autres conseils
Si vous avez un peu de temps libre, vous pouvez comprendre exactement quelle est la différence: exécutez cd /; trouver . > / tmp / old
sur l'ancien serveur, cd / old-server; trouver . > / tmp / new
sur le nouveau serveur, puis vimdiff
les deux fichiers pour voir ce qui a changé.
Il y a des systèmes de fichiers spéciaux que vous devriez éviter de copier avec rsync
, par exemple, / proc
, / sys
, / tmp
. Ils peuvent expliquer la différence que vous voyez, bien que cela semble trop grand de toute façon.
Il pourrait y avoir des répertoires illisibles (par exemple, sans r
ou x
). Je ne me souviens pas si un processus exécuté avec les droits racine
peut accéder à ces répertoires sans avoir au préalable fixé les autorisations.
Mieux générer et comparer la liste des fichiers et leurs sommes md5.
Quelques suggestions:
- fichiers fragmentés (utilisez -S)
- liens durs (utilisez -H)
-
/ proc
et/ sys
(utilisez --exclude ou, mieux, -x et sauvegardez chaque système de fichiers séparément)
J'ai tendance à utiliser rsync -axHSW --numeric-ids
dans des circonstances similaires.