Назад | Перейти на главную страницу

Это не похоже на tar-архив

Я пытаюсь быстро скопировать некоторые большие каталоги с моего удаленного сервера Debian 9 на локальный Debian 9 на WSL (подсистема Windows для Linux; Windows 10 Pro) с помощью ssh "tar" | tar труба.

ssh user@example.com "cd /path/to/resource && tar czf - resource1 resource2" | tar xzvf -

Когда я запускаю эту команду, я получаю сообщения об ошибках

gzip: stdin: не в формате gzip
tar: Ребенок умер с сигналом 13
tar: Ошибка не исправима: выход сейчас

Если я сделаю то же самое без zпараметр

ssh user@example.com "cd /path/to/resource && tar cf - resource1 resource2" | tar xvf -

Я получаю эти ошибки:

tar: это не похоже на архив tar
tar: переход к следующему заголовку

без подсказки.

Я запускал эту команду несколько раз раньше на другом оборудовании, и в этом конкретном случае я просто повторно запустил эту команду из моей bash_history несколько дней назад. Тогда он запускался, но сейчас не работает.

Если я использую scp вместо этого с включенным сжатием (что будет намного медленнее)

scp -rC user@example.com:/path/to/resource/resource1 .

Я получаю такую ​​ошибку:

ошибка протокола: mtime.sec отсутствует

Что я могу сделать, чтобы это работало?

версия tar
Локальный: tar (GNU tar) 1.29
Удаленный: tar (GNU tar) 1.29

версия bash
Локально: GNU bash, версия 4.4.12 (1) -release (x86_64-pc-linux-gnu)
Удаленный: GNU bash, версия 4.4.12 (1) -release (x86_64-pc-linux-gnu)

Версия для Linux (cat / proc / version)
Локально: Linux версии 4.4.0-17134-Microsoft (Microsoft@Microsoft.com) (gcc версии 5.4.0 (GCC)) # 523-Microsoft Mon Dec 31 17:49:00 PST 2018
Удаленный: Linux версии 4.9.0-5-amd64 (debian-kernel@lists.debian.org) (gcc версия 6.3.0 20170516 (Debian 6.3.0-18)) # 1 SMP Debian 4.9.65-3 + deb9u2 ( 2018-01-04)

Это была ошибка на удаленном сервере. Для какой-то программы, которую я там запускаю (tig), мне нужен xterm 256 цветов, и я установил его этим скриптом. Установил только недавно.

if [ -e /usr/share/terminfo/x/xterm-256color ]; then
    export TERM='xterm-256color'
    echo TERM set to 256 colors
elif [ -e /usr/share/terminfo/x/xterm+256color ]; then
    export TERM='xterm-256color'
    echo TERM set to 256 colors
else
    export TERM='xterm-color'
    echo TERM set to color
fi

Мне нужно было избавиться от эха, и он снова работает

if [ -e /usr/share/terminfo/x/xterm-256color ]; then
    export TERM='xterm-256color'
elif [ -e /usr/share/terminfo/x/xterm+256color ]; then
    export TERM='xterm-256color'
else
    export TERM='xterm-color'
fi

Благодаря Джеральд Шнайдер для подсказки

Обратите внимание на наглостькомментарий ниже