Lakukan rsync sambil mengikuti tautan sym

67

Saya memiliki direktori yang berisi tautan simbolis ke direktori lain yang terletak di berbagai media di sistem saya:

/opt/lun1/2011
/opt/lun1/2010
/opt/lun2/2009
/opt/lun2/2008
/opt/lun3/2007

Tetapi tautan simbolis muncul sebagai:

/files/2011
/files/2010
/files/2009
/files/2008
/files/2007

Bagaimana saya bisa melakukan rsyncyang mengikuti tautan simbolik?

misalnya:

rsync -XXX /files/ user@server:/files/

menjerat
sumber

Jawaban:

98

The -Lbendera untuk rsync akan melakukan sinkronisasi isi dari file atau direktori terkait dengan, daripada link simbolik.

MadHatter
sumber
1
Ketika saya melakukan ini, semua tautan simbolis penerima terhapus dan pengirim saya mulai mengirim kembali file-file tersebut.
menjerat
Bukankah itu yang kamu inginkan? Saya pikir Anda ingin memiliki file asli di sisi penerima, bukan hanya symlink. Maksud Anda Anda ingin symlink disalin sebagai symlink, tetapi secara otomatis ditulis ulang untuk menunjuk ke tempat yang "benar" pada sistem penerima? Jika demikian, bukan itu yang biasanya dimaksud dengan "rsync yang mengikuti tautan simbolik".
MadHatter
4
Hai - ini adalah direktori. Saya dapat ini bekerja dengan bendera -K.
menjerat
4
Saya yakin SO membuat saya lebih bodoh ..
John Hunt
4
Untuk memperjelas, -LKjika Anda ingin mengikuti file dan direktori yang disinkronkan
Mahn
17

Baru saja mengalami masalah ini. Dan jika Anda ingin rsync memperlakukan direktori yang disinkronkan sebagai direktori, Anda menginginkan Kopsi tersebut

rsync -K /files/ user@server:/files/

Jmeyering
sumber
Anda mungkin juga ingin menambahkan opsi --copy-unsafe-links
Gregory Magarshak
2

Anda memerlukan keduanya -L dan -Kjika Anda memiliki symlink di kedua sisi, mis. Anda sudah melakukan rsync pertama Anda dan ingin memperbarui cadangan menggunakan rsync.

    -L, --copy-links            transform symlink into referent file/dir
    -K, --keep-dirlinks         treat symlinked dir on receiver as dir

Dalam kasus seperti itu, jika Anda hanya menggunakan -L, symlink di sisi penerima akan dihapus dan dir nyata baru akan dibuat.

HongboZhu
sumber