Bosh sahifa Wiki Remote copy

Remote copy

Remote copy — fayl yoki katalogni tarmoq orqali boshqa hostga nusxalash amaliyotidir. U SSH asosidagi scp yoki rsync, SFTP, SMB, HTTPS va object storage API orqali bajarilishi mumkin. Usul tanlovi autentifikatsiya, shifrlash, metadata, resume, delta transfer va masofaviy filesystem imkoniyatlariga bog‘liq.

SCP

scp tarixan SSH transporti ustida oddiy source–destination sintaksisi bilan fayl ko‘chiradi. Zamonaviy OpenSSH versiyalarida scp buyrug‘i SFTP protokolidan foydalanishi mumkin, legacy SCP xatti-harakati esa alohida yoqilishi mumkin. Script aniq versiya va protokol semantikasiga tayanadi.

Rekursiv katalog ko‘chirish mavjud, ammo symlink, permission, timestamp va special file xatti-harakati optionga bog‘liq. Masofaviy filename ishonchsiz bo‘lsa shell interpretation va path muammolari tarixan xavf tug‘dirgan. SFTP asosidagi rejim parsingni yaxshilaydi.

Rsync

rsync source va destination fayllarini taqqoslab, o‘zgargan bloklarni uzatishi mumkin. Katta faylning kichik qismi o‘zgarganda tarmoq sarfi kamayadi. Archive mode ko‘p metadata turini saqlaydi, lekin ACL, xattr va hard link uchun qo‘shimcha option talab qilinishi mumkin.

Trailing slash semantikasi muhim: source katalogning o‘zi yoki uning ichidagi fayllar ko‘chirilishi farq qiladi. Delete option destinationda source da yo‘q fayllarni o‘chiradi; noto‘g‘ri path bilan katta ma’lumot yo‘qotilishi mumkin. Dry-run rejalashtirilgan farqni ko‘rsatadi.

Yaxlitlik

Transport xatosiz tugagani barcha fayl aynan kerakli nusxa ekanini kafolatlamaydi. Fayl hajmi, mtime va zarur hollarda checksum solishtiriladi. Kriptografik hash muhim artifact uchun kuchli dalil beradi, lekin hash qiymati ishonchli manbadan olinadi.

Ko‘chirish davomida source o‘zgarsa aralash snapshot hosil bo‘lishi mumkin. Database directoryni ishlayotgan paytda oddiy nusxalash consistency bermaydi. Application snapshot, filesystem snapshot yoki database backup protokoli ishlatiladi.

Atomic nashr qilish

Destination fayl avval vaqtinchalik nom bilan yozilib, to‘liq tekshirilgach atomic rename qilinadi. Bu consumerning yarim faylni o‘qishini oldini oladi. Rename bir filesystem ichida atomic bo‘lishi mumkin; turli mountlar orasida copy va deletega aylanadi.

Katalog release uchun versionlangan directory yaratiladi va current symlink almashtiriladi. Rollback oldingi directoryga pointer qaytarish bilan bajariladi. Biroq application state va database schema ham mos bo‘lishi kerak.

SSH xavfsizligi

Server host key known_hosts yoki SSH certificate orqali tekshiriladi. Strict host key checkingni o‘chirish avtomatlashtirishni osonlashtiradi, ammo man-in-the-middle himoyasini yo‘qotadi. Service account kaliti faqat kerakli katalog va commandga cheklanadi.

Private key log yoki repositoryga qo‘yilmaydi. Agent forwarding masofaviy hostga credential imkoniyatini kengaytirishi mumkin va zarur bo‘lmasa o‘chiriladi. Audit kim, qaysi source, destination va byte hajmini ko‘chirganini qayd etadi, fayl mazmunini emas.

Bandwidth boshqaruvi

Katta nusxa production tarmog‘i va disk I/O sini band qilishi mumkin. Rate limit, off-peak schedule va QoS asosiy xizmatni himoya qiladi. Compression sekin tarmoqda foydali, ammo allaqachon siqilgan media uchun CPU sarfini oshiradi. Parallel stream throughputni oshirishi bilan birga destination loadni ham ko‘paytiradi.

Sparse va maxsus fayllar

Sparse fayl oddiy nusxada bo‘sh bloklari ham yozilib, ko‘proq joy egallashi mumkin. Vosita sparse extentni saqlash optioniga ega bo‘lishi kerak. Device node, socket va FIFO odatiy data fayli emas; ularni boshqa hostga nusxalash ko‘pincha ma’nosiz yoki xavfli.

Xatodan tiklanish

Transfer manifest har fayl statusi va checksumini saqlasa uzilgan batch faqat qolgan qismini davom ettiradi. Destinationda qisman yozilgan nusxalar alohida belgi bilan turadi. Retrydan oldin source versiyasi o‘zgarmaganligi tekshiriladi; aks holda yangi snapshot boshlanadi.

Bog‘liq tushunchalar

SCP, SFTP, Rsync, SSH, Checksum, Atomic rename, File transfer