Saya menggunakan rsync (1) untuk memperbarui repositori debian lokal. Baru-baru ini, disk yang saya gunakan untuk menyimpannya mulai kehabisan ruang, jadi saya memutuskan untuk menggunakan symlink untuk memungkinkan saya memindahkan beberapa direktori ke disk berukuran serupa lainnya.
Sayangnya, tampaknya rsync menghapus symlink dan mengisi ulang disk yang hampir penuh. Setelah beberapa pencarian, saya menemukan --keep-dirlinks
opsi untuk rsync, yang tampaknya dibuat khusus untuk memperbaiki masalah saya.
Hanya saja tidak. Symlink pada target masih terhapus.
Ini adalah perintah rsync saya:
rsync --recursive --keep-dirlinks --links --hard-links --times --verbose \
--delete --delete-excluded $EXCLUDE $SOURCE_EXCLUDE \
$RSYNC_HOST::$RSYNC_DIR/pool/ $TO/pool/
EXCLUDEs berkembang untuk menghilangkan sejumlah besar arsitektur yang saya tidak tertarik, di sepanjang baris --exclude binary-alpha/ --exclude disks-alpha ...
. Sebelum rsync diluncurkan, direktori pool saya terlihat seperti ini:
lrwxrwxrwx 1 root root 23 2014-09-22 13:58 contrib -> /u2/debian/pool/contrib
drwxrwxr-x 62 root root 4096 2012-04-09 03:02 main
lrwxrwxrwx 1 root root 24 2014-09-22 13:58 non-free -> /u2/debian/pool/non-free
Setelah rsync masuk, saya mendapatkan ini:
receiving incremental file list
deleting non-free
deleting contrib
./
contrib/
contrib/a/
Dan seterusnya, dan symlink diganti dengan direktori yang penuh dengan file.
Apakah beberapa opsi rsync lain mengganggu --keep-dirlinks
? Mana yang tidak bisa saya gabungkan? Atau urutan urutan yang menyebabkan masalah saya?