Dari waktu ke waktu, saya harus melakukan beberapa perubahan migrasi besar pada file data di server saya, dan saya sedang mencari cara yang baik untuk melakukan ini. Saya sedang berpikir tentang menggunakan rsync untuk menduplikasi struktur direktori saya mulai dari folder data root, membuat tautan keras ke semua file asli (beberapa di antaranya agak besar), dan saya bisa menimpa di pohon tujuan hanya file yang perlu dimigrasi. Pada akhirnya, saya dapat dengan aman beralih dari file lama ke file baru dengan dua mv
operasi.
Namun, sepertinya saya tidak bisa mendapatkan rsync untuk melakukan ini. Saya mencoba
rsync -a --link-dest=$DATA $DATA $DATA/../upgrade_tmp
tetapi alih-alih membuat tautan keras ke file, rsync menyalinnya seluruhnya. Apakah ada masalah menggunakan direktori source dan link-dest yang sama?
ls -ilah
$SOURCE
direktori ke$TARGET
dir seperti ini:SOURCE='abs_path_to_backup'; TARGET='.'; rsync -a --link-dest=$(relpath $TARGET $SOURCE) $SOURCE/ $TARGET/
Yang Anda inginkan adalah "cp -al":
rsync -a
sumber
cp -al
sayangnya tidak tersedia di sistem saya (Mac OS X 10.6). Saya akan menggunakan pax sebagai gantinya ...The
--link-dest
pilihan dirsync
relatif ke tujuan direktori, bukan direktori saat ini. Jadi yang Anda inginkan adalah:sumber
--link-dest
opsi, jika relatif , relatif terhadap direktori target. Dalam kasus saya ini mutlak. Bahkan membuatnya relatif ke direktori target tidak membuat ini berfungsi.Ternyata lebih sulit melakukan ini
rsync
dibandingkan dengan alat lain. Jawaban yang benarrsync
adalah untuk Steven Monai, tetapi cara termudah untuk melakukan ini adalah dengan menggunakan salah satucp -al
ataupax -rwl
pada sistem-l
yang bukan pilihan yang valid untukcp
:atau
sumber
Ini bekerja untuk saya:
Saya menggunakan rsync versi 3.1.0.
Dari manusia :
sumber
Dapat mencoba tautan berikut http://www.lessfs.com/wordpress/ ini berfungsi pada COW (copy on write) yang akan menghemat waktu dan ruang
sumber
Pertama buat direktori hanya pada tujuan:
Maka hanya menautkan file:
sumber
pax
seperti yang ditunjukkan dalam komentar saya di atas, yang tampaknya lebih mudah.Gunakan Opsi -H untuk melestarikan Hardlink dan membaca halaman manual.
sumber