วิธีการคัดลอกไฟล์แบบกระจายโดยใช้ scp


15

เรามีตัวเลือกใดบ้างscpที่ฉันสามารถคัดลอกไฟล์แบบกระจายได้หรือไม่

คำสั่งดังต่อไปนี้ใช้งานได้sshแต่ฉันกำลังมองหาตัวเลือกSCPที่คัดลอกไฟล์กระจัดกระจาย

tar -Szcf - /home/myself/test/ | \
  ssh myself@myserver 'tar -C /home/myself/test_scp -zvxf -'

คำตอบ:


15

scpไม่รองรับไฟล์ที่กระจัดกระจาย ใช้rsyncแทน

rsync -aS /home/myself/test/ myself@myserver:

ขอบคุณสำหรับคำตอบ Rsync ทำผ่าน ssh แต่ผมกำลังมองว่าสำหรับการคัดลอกไฟล์เบาบางใช้ 'SCP' คำสั่ง

1
rsync สามารถโชคไม่ดีที่มีจำนวนมากช้าในบางกรณี ...
Florian Heigl

0

คุณควรจะสามารถทำได้ผ่าน SFTP แม้ว่าฉันจะไม่รู้จักไคลเอนต์ SFTP ที่สนับสนุนคุณสมบัติดังกล่าว

อัปเดต : ฉันได้เพิ่มคุณสมบัตินั้นไปยังรุ่นพัฒนาของโมดูล Perl Net :: SFTP :: Foreign ของฉัน ในตัวอย่าง:

#!/usr/bin/perl

use strict;
use Net::SFTP::Foreign;

@ARGV == 3 or die <<EOU;
Usage:
  sparse_put <host> <src> <dst>

my ($host, $src, $dst) = @ARGV;

$s = Net::SFTP::Foreign->new($host, autodie => 1);
$s->put($src, $dst, sparse => 1);

สิ่งนี้จะเป็นไปได้โดยใช้ไคลเอนต์ SFTP ใน Linux? คุณมีไวยากรณ์สำหรับคำสั่ง sftp หรือไม่

แต่เห็นการปรับปรุงการโพสต์ของฉัน
Salva

0

เพียงเพิ่มตัวเลือกนี้ใน scp:

--sparse=always

มันแสดงอยู่ในหน้า man cp แต่ก็ใช้ได้กับ scp ด้วย


0

คุณสามารถเพิ่ม

--sparse = เสมอ

เพื่อคำสั่งscpแต่มันจะคัดลอกไฟล์ปกติในด้านอื่น ๆ (ไม่มีกระจัดกระจาย)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.