Saya memiliki dua server yang harus memiliki setup yang sama kecuali perbedaan yang diketahui.
Dengan menjalankan:
find / \( -path /proc -o -path /sys -o -path /dev \) -prune -o -print | sort > allfiles.txt
Saya dapat menemukan daftar semua file di satu server dan membandingkannya dengan daftar file di server lain. Ini akan menunjukkan kepada saya perbedaan dalam nama-nama file yang berada di server.
Yang benar-benar ingin saya lakukan adalah menjalankan checksum pada semua file di kedua server dan membandingkannya juga untuk menemukan di mana isinya berbeda. misalnya
find / \( -path /proc -o -path /sys -o -path /dev \) -prune -o -print | xargs /usr/bin/sha1sum
Apakah ini cara yang masuk akal untuk melakukan ini? Saya berpikir bahwa rysnc sudah memiliki sebagian besar fungsi ini tetapi dapatkah itu digunakan untuk memberikan daftar perbedaan?
-print0
sebagai ganti-print
danxargs -0
bukanxargs
. Anda akan menghindari masalah yang disebabkan oleh nama file "aneh".Jawaban:
Anda benar, rsync sangat cocok untuk ini. Gunakan
--itemize-changes
(alias -i). Pastikan Anda dapat menjalankan ini sebagai root di kedua sisi (atau pengguna lain dengan akses penuh ke mesin):-a
adalah untuk arsip, dan pada dasarnya membuat rsync membuat duplikat yang tepat (terlepas dari beberapa kasus yang melibatkan tautan)-n
untuk dry-run, dan berarti tidak ada yang benar-benar akan berubah (Yang ini PENTING! :))-i
adalah untuk itemize-changes, dan menampilkan format sederhana-untuk-dipahami-sekali-Anda-dapatkan-memperlihatkan setiap file yang perlu diperbarui (sintaksinya dijelaskan sepenuhnya di halaman manual di bawah bantuan rinci untuk pemicu itu).--delete
membuat rsync menghapus file yang ada di tujuan tetapi bukan sumbernya.Jika Anda ingin mengecualikan jalur tertentu, gunakan perintah like
--exclude /var
. Pola kecualikan relatif terhadap direktori sumber (yang dalam hal ini adalah /, sehingga benar-benar absolut).sumber
Anda mungkin ingin menyelidiki flag -s rsync. Dari
man rsync
:Saya akan meninggalkan komentar untuk jawaban Alex Jurkiewicz, tapi saya tidak punya cukup perwakilan: '(belum ...
sumber
Salah satu alat yang berguna yang harus Anda pertimbangkan adalah "rpm -Va". Ini akan mencetak daftar semua file paket yang berbeda dari saat mereka dikemas. Ini mengabaikan semua file yang tidak dikemas, tetapi ini adalah cara yang sangat baik untuk mendapatkan gambaran tentang file yang telah diubah sejak instalasi, yang merupakan bagian dari sistem dasar. Mereka juga menyertakan flag yang memberi tahu Anda jika mereka dianggap file konfigurasi.
Sebagai contoh:
Jadi ".bashrc" dan "yum-updatesd.conf" adalah "konfigurasi" file yang telah berubah dalam ukuran, waktu, dan MD5 checksum. "rdate" telah memiliki perubahan mode ...
Basis data RPM adalah hal yang sangat berguna.
sumber