Použijte tar
:
tar cvzf - -T list_of_filenames | ssh hostname tar xzf -
K tomu bych chtěl použít scp, ale scp umožňuje přenos pouze jednoho souboru najednou.
Jsem si docela jistý, že to není pravda, alespoň ne pro scp
příkaz poskytovaný OpenSSH, který je součástí většiny distribucí Linuxu.
Používám scp file1 file2 ... fileN [email protected]:/destination/directory/
poměrně často.
Pro transparentní kompresi má protokol SSH toto zabudované a scp
můžete jej použít, pokud zadáte -C
možnost na příkazovém řádku. U spousty podobných malých souborů najdete možnost tar+gz navrženou akirou, která získává lepší kompresi, protože může využít podobnosti mezi takovými soubory, kde scp
komprimuje každý soubor jako samostatnou entitu. Obecně dávám přednost použití scp, protože je snazší obnovit částečný převod (nebo, i když vím, že v této situaci tazatel nemá možnost) rsync
protože to je ještě snazší obnovit a sdílí výhodu komprese celého streamu možnosti tar+gz.
Ne scp -r yourdir otherhost:/otherdir
práce?
Zkuste toto:
tar cfz - . | ssh otherhost "cd /mydir; tar xvzf -"
z
-flag to tar provede kompresi. Nebo můžete použít -C pro ssh:
tar cf - . | ssh -C otherhost "cd /mydir; tar xvf -"