Как перенаправить вывод split на sftp?

Для минимальной настройки CLI на основе Debian -я бы рассмотрел либо минимальную сетевую установку (netinst )образ Debian, либо сервер Ubuntu, который представляет собой версию дистрибутива с командной -строкой с некоторыми включены общие серверные пакеты.

Образ netinst Debian устанавливает минимальную систему и позволяет вам самостоятельно устанавливать больше пакетов по сети. Образ Ubuntu Server будет включать больше пакетов, включенных в установку по умолчанию, поэтому он менее минимален, но, вероятно, его установка займет меньше времени в зависимости от того, что вы делаете. В обоих случаях вам просто нужно включить sshd и любые другие службы или пакеты, необходимые для вашего программного обеспечения.

0
08.10.2021, 13:23
1 ответ

Конечно, вы можете использовать sshfs. Предполагая, что вы уже правильно настроили sftpв том направлении, в котором вы хотели бы отправлять эти файлы, вы можете сопоставить локальный каталог с вашим удаленным сервером следующим образом.

$ mkdir remote
$ sshfs user@server:/path/to/dir remote

Затем вы можете настроить свою команду для записи разделенных файлов в сопоставленный каталог.

$ tar -czpv mydir | split -d -a 4 -b $SplitBlockSize - remote/mydir.gz.tar

В вашем случае, я думаю, лучшим решением будет использование опции --filterс split. Со страницы manдокументаsplit-

--filter=COMMAND
       write to shell COMMAND; file name is $FILE

Вот так

$ tar -czpv mydir | split -d -a 4 -b $SplitBlockSize --filter 'ssh user@remote "cat >$FILE"' - mydir.gz.tar

запишет файлы непосредственно через sshна ваш удаленный сервер. Я бы посоветовал вам настроить аутентификацию с открытым ключом, если вы еще этого не сделали, иначе вам придется вводить пароль для каждого передаваемого файла. В вашем случае это будет 64 раза на ТБ. Если вы ожидаете, что этот перенос займет очень много времени, рассмотрите возможность использования nohup, чтобы уменьшить вероятность того, что вам придется начинать все сначала.

2
08.10.2021, 15:39

Теги

Похожие вопросы