FWIW, я всегда использовал следующее:
tar -cpf - <source path> | ssh user@destserver "cd /; tar xf -"
Суть этого метода в том, что он будет поддерживать права доступа к файлам/папкам между машинами (при условии, что на обоих компьютерах существуют одни и те же пользователи/группы) (Также обычно я делаю это для копирования образов виртуальных дисков, так как для обработки разреженных файлов я могу использовать параметр -S.)
Просто протестировал это между двумя занятыми серверами и управляемыми ~ 14 ГБ в 216. (около 64MB/s) - может быть лучше между выделенными машинами и/или сжатием... YMMV
$ date; tar -cpf - Installers | ssh elvis "cd /home/elvis/tst; tar xf -"; date
Wed Sep 9 15:23:37 EDT 2015
Wed Sep 9 15:27:13 EDT 2015
$ du -s Installers
14211072 Installers
-121--3172- Попробуйте:
cd /home/aryan
tar cfvz /dev/stdout . |
ssh root@remoteserver 'cat > file.tar.gz && tar zxvf file.tar.gz'
Вам просто нужно немного адаптировать его
/dev/stdout
можно заменить на -
.
Основным способом создания сжатых файлов с использованием tar является tar opts file.ext dir/
. Здесь мы явно заменяем целевое имя файла на STDOUT
, чтобы иметь возможность передавать его через ssh.
В UNIX было несколько программ, которые не соответствуют текущему стандарту опций.
Один из них - dd
, но dd был получен из мейнфрейма IBM DDR
(Disk Dump and Restore).
Один из них - ar
, а другой - tar
. По моей информации, смола хотела быть похожей на ар.
Все реализации смол работают без - и никакая полезная реализация не требует -. Поэтому, если вы хотите писать переносные сценарии, проверьте стандарт SUSv2 и используйте только командную строку, совместимую с SUSv2.
Si bien tar
puede agregar archivos a un archivo ya existente, no se puede comprimir. Tendrás que bunzip2
el archivo comprimido, dejando un tarball estándar. Luego puede usar la capacidad de tar
para agregar archivos a un archivo existente y luego volver a comprimir con bzip2
.
Del manual:
-r Like -c, but new entries are appended to the archive. Note that this only
works on uncompressed archives stored in regular files. The -f option is
required.