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

удаленно сжимать папки и файлы сервера и копировать их на мой локальный диск

У меня есть выделенный сервер Linux с доступом по ssh и plesk. У меня недостаточно места на моем сервере, чтобы я мог заархивировать все свои папки и файлы, а затем скопировать их на свой локальный компьютер.

Есть ли команда bash, которая может напрямую архивировать удаленные файлы на моем локальном диске?

Если ваш «локальный диск» является клиентом linux, вы можете просто использовать удаленную команду tar для вывода вывода на стандартный вывод (по умолчанию явная спецификация параметра будет «-f -») и передать его в локальный tar, который читает из стандартного ввода (снова явный параметр "-f -") вот так:

ssh your.dedicated.server 'tar -czf - /my/files/to/back/up' | tar -xzf -

При использовании опции «-z» Tar сжимает ваши данные с уровнем сжатия gzip по умолчанию (6). Если вам нужна более высокая степень сжатия и есть свободные циклы ЦП, вы можете вместо этого использовать «-j», но если это старая / виртуальная машина с быстрой связью, вы можете получить общую более низкую скорость передачи.

Да, и в качестве редактирования: вы можете указать параметр -C (сжатие) с SCP, это также будет использовать gzip в качестве алгоритма сжатия, хотя степень сжатия обычно будет немного ниже, чем с комбинацией tar / gzip. Его меньше печатать, и в качестве бонуса вы получите отличные индикаторы прогресса.

Я не совсем уверен, в чем твоя проблема. Не могли бы вы объяснить немного больше?

В любом случае, смотрите параметры -r и -C для scp. Это позволяет вам рекурсивно копировать файловое дерево и сжимать его по сети. После этого вы всегда можете заархивировать его на своем локальном компьютере.

Если вы действительно хотите заархивировать его на лету, по крайней мере, с tar он работает как

ssh yourserver 'tar cvzf - / путь'> local.tar.gz

Я не уверен, есть ли команда, которую вы можете запустить, чтобы действительно заархивировать данные на локальный компьютер во время передачи, но не можете ли вы просто передать некоторые вещи разархивированными, достаточно, чтобы вы могли затем удалить оригиналы на удаленной машине, затем заархивируйте остальные и отправьте их? Затем вы можете просто разархивировать их на своем локальном компьютере, собрать их все вместе, как они были, и повторно заархивировать их?

Извините, надеюсь, я понимаю, чего вы пытаетесь достичь.