4

У меня есть одна папка для копирования, которая состоит из PHP и аналогичных файлов для создания веб-сайта.

Как скопировать одну папку с сервера (Linux Ubuntu) на клиентский компьютер (Linux Ubuntu) с помощью терминала? Могу ли я использовать ftp? Для терминального подключения я использую Telnet.

Расположение папки на сервере:

qa@ubuntu:~/www/html/js 

И я хочу скопировать его клиенту по адресу:

qa@desktop2:~/home/qa/html

5 ответов5

5

Вы можете использовать scp, если на удаленном компьютере запущен ssh-сервер (в любом случае, это хорошо). Telnet не хороший, незашифрованный и надоедливый.

Так как я предполагаю, что вы можете использовать ssh на удаленной машине, основной способ использования scp:

scp -r ~/www/html/js qa@desktop2:~/home/qa/html/js

Предполагая, что вы хотите скопировать из qa@ubuntu:~/www/html/js в qa@desktop2:~/home/qa/html/js scp, довольно мощно, поэтому я предлагаю прочитать справочную страницу для этого на

man scp
4

Редактировать: у вас будут проблемы с копированием файлов через telnet, мой друг. Почему вы настаиваете на использовании терминала?

Это означает, что вы работаете в Windows, поэтому, вероятно, имеете доступ к графической среде. Так будет ли исключено использование совместного использования файлов Windows / веб-браузера / клиента FTP / клиента SSH / и т.д., Поскольку они графические? И если так, то почему?

У вас есть root-доступ на машине с Ubuntu? Я бы предложил вам установить ssh-сервер:

sudo apt-get install openssh-server

Затем возьмите Windows SSH/SCP-клиент, например. WinSCP, и используйте его для входа на сервер и копирования ваших файлов.

Или, если вы действительно хотите по какой-то причине сделать это через терминал, возьмите Cygwin и откройте окно установки, а затем используйте команду «scp», указанную ниже.

Вы должны быть немного более конкретным в своей ситуации.

  • на какой ОС работает клиент?
  • на какой ОС работает сервер?
  • какие службы работает на сервере, если вы знаете (FTP, HTTP, NFS, SMB, SSH и т. д.)

Например, если у вас есть SSH-доступ к серверу, что-то вроде этого будет работать:

scp user@server.mydomain.com:/remote/path/file.txt /local/path/

Если у вас есть HTTP-доступ к файлу (http://server.mydomain.com/path/file.txt), то, как это было предложено выше, wget:

wget http://server.mydomain.com/path/file.txt

Ответ сильно зависит от вашей ситуации.

1

Если ssh/scp недоступен, попробуйте netcat.

http://nakkaya.com/2009/04/15/using-netcat-for-file-transfers/

Netcat - это простой дамп файла в сетевой порт. Это полезно для переноса на базовый хост, когда ssh недоступен, или для передачи очень больших файлов по локальной сети / Интернету, где издержки SSH-шифрования становятся узким местом.

Тем не менее, scp по-прежнему является стандартным способом передачи файлов с удаленных хостов. И если вы пытаетесь перенести весь каталог, лучше использовать rsync через ssh:

rsync -avz -e ssh qa@ubuntu:~/www/html/js  ~/home/qa/html

Scp просматривает каталог по мере его передачи, он может быть очень медленным с большими папками. Rsync проходит через весь каталог и применяет сжатие gzip перед началом передачи. Если локальная копия существует, rsync сравнивает их и передает только дельту: измененную часть файлов.

И добавленное исправление для предыдущего предложения scp: scp для всего каталога требует опцию -r:

scp -r qa@ubuntu:~/www/html/js  ~/home/qa/html
1

Если вы используете Windows для этого, и вы действительно не можете использовать HTTP для получения файла, вы можете воспользоваться передачей файлов старой школы по 7-битным протоколам ASCII. Я говорю о Z-модеме. В последний раз он широко использовался через коммутируемый доступ в Интернет, в частности в мире BBS, с побочной линией в передачах unix-to-unix, когда FTP не был доступен (обычно через rsh, но я отвлекся).

В любом случае, чтобы получить это дерево каталогов из Windows, без использования FTP или HTTP, просто терминал.

  1. Telnet к серверу, используя HyperTerm.
  2. Tar/Zip каталоги, которые вас интересуют.
  3. Из командной строки
    sz filename.tar.gz  
  4. В Hyperterm выберите Transfer -> Receive File.
  5. Укажите ваш путь сохранения и "Zmodem" в качестве протокола приема.

Он не будет передавать так быстро, как FTP или HTTP, но он получит ваши файлы.

0

Это зависит от того, как файл подается. Если файл можно загрузить из веб-браузера, то сработает команда "wget": http://linux.die.net/man/1/wget

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .