Wie kopiere ich eine Sparse-Datei mit scp?

Wie kopiere ich eine Sparse-Datei mit scp?

Gibt es eine Möglichkeit, mit scpder ich eine Sparse-Datei kopieren kann?

Der folgende Befehl funktioniert mit ssh, aber ich suche nach einer Option, mit SCPder eine Sparse-Datei kopiert wird.

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

Antwort1

scpunterstützt keine Sparse-Dateien. Verwenden Sie rsyncstattdessen.

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

Antwort2

Sie sollten es auch über SFTP tun können, obwohl ich keinen SFTP-Client kenne, der diese Funktion unterstützt.

Aktualisieren: Ich habe diese Funktion in die Entwicklungsversion meines Perl-Moduls integriertNet::SFTP::Ausland. Zum Beispiel:

#!/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);

Antwort3

Du kannst hinzufügen

--sparse=immer

ZuscpBefehl, aber es wird eine normale Datei auf die andere Seite kopiert (keine Sparse-Datei).

Antwort4

Fügen Sie einfach diese Option zu scp hinzu:

--sparse=always

Es ist auf der CP-Manpage aufgeführt, funktioniert aber auch für SCP.

verwandte Informationen