Home > bashism, linux, management, software > scp für viele kleine Dateien

scp für viele kleine Dateien

Immer benutze ich folgendes hilfreiches Kommando, welches elegant und schnell viele kleine Dateien per ssh kopiert:

tar cf – <dir_to_copy> | ssh <bar@foo> “tar xpf – -C <dest_dir>”

Das Ergebnis befindet sich dann auf foo in <dest_dir>/<dir_to_copy>.

Warum nimmt man da nicht scp? Scp hat die bei vielen kleinen Dateien unangenehme Eigenschaft, jede Datei einzeln zu puffern und dann zu übertragen. Das kann selbst bei gewaltigen Bandbreiten dann zu übertragungsraten von wenigen kB/s führen, was schon mal nervig sein kann.

Durch die Benutzung von tar wird das ganze Verzeichnis als einzelner Stream in großen Blöcken übertragen wie man sich das wünscht.

Categories: bashism, linux, management, software Tags:
  1. January 1st, 2012 at 16:02 | #1

    I normally use it the other way around:
    cd
    ssh “tar czf – ” | tar xzf -

    But the basic idea is the same and yields in1.6MB/s instead of 4.5KB/s . . .

  1. No trackbacks yet.