Как закачать файл (архив) на сервер Linux с помощью команды wget

Для того, чтобы закачать файл на удалённый сервер есть масса способов. Пожалуй, самый безумный, который можно придумать, это вбить его ручками с клавиатуры, но это долго и мучительно. Самый распространённый способ — это залить файл на сервер с помошью ftp-клиента на удалённом компьютере. В этой статье рассмотрим утилиту wget, которая позволяет скачивать файлы (и даже целые сайты) к себе на удалённый сервер. wget чаще всего используется для закачки дистрибутивов или ключей из репозиториев на сервер с оперционкой семейства *nix.

Старт! Честный VDS/VPS, на котором «Лунная База» живет уже 20+ лет

Задумываетесь о том, чтобы поднять свой pet-проект, сайт клиента или настроить окружение для разработки? Уже пора подумать, где арендовать железо.

Лунная База хостится на FirstVDS более 20 лет. Мыслей о том, чтобы перебраться на другой хостинг, не было ни разу (хотя опыт работы с другими вариантами, конечно, есть).

Бывали разные ситуации, но они бывают на любом железе. Главное, что нужно понять: здесь нет маркетинговой шелухи и сказок про «мы всё сделаем за вас». Если вы берете VDS — вам дают полный root, возможность накатить любую ОС и не лезут в ваши конфиги.

Если в саппорт написать с вопросом по вашему коду и получить ответ: «Читайте документацию и разбирайтесь сами» или «Обратитесь к профильному специалисту» — это не повод обижаться. Это повод углубить свои знания в DevOps и сайтостроении! Бегите от тех, кто пообещает: «Мы всё чиним и настраиваем абсолютно бесплатно!». Никто никогда не работает «по доброте душевной» в ущерб себе, а бесплатный сыр в администрировании обычно заканчивается сломанной базой данных.

Что по факту: Гибкое масштабирование ядер и RAM, экономия по сравнению с физическими серверами и адекватная панель ispmanager, если она вам нужна.



Синтаксис и опции wget

Для детального ознакомления с утилитой wget нужно потратить массу времени. Поэтому проще всего вызвать помощь по ней непосредственно в консоли сервера и начать именно с этого:

root@server:~# wget -h

Если этого окажется мало, то можно почитать более подробный мануал:

root@server:~# man wget

Но для того, чтобы закачать дистрибутив на сервер потребуется всего лишь малая толика из этой лавины информации. Поэтому приведу лишь официальную информацию о синтаксисе вызова этой процедуры:

wget [option]... [URL]...

Загрузка файла на сервер linux командой wget

Рассмотрим самый простой случай. Есть дистрибутив Joomla, лежащий в официальном репозитории. Требуется его скачать для последующей установки.

  1. Заходим в нужную директорию у себя на сервере, куда нужно скачать этот дистрибутив
  2. Набираем команду: wget https://downloads.joomla.org/cms/joomla3/3-9-6/Joomla_3-9-6-Stable-Full_Package.zip
  3. Архив скачивается в ту папку, из которой произошёл вызов.
  4. Если файл по указанному адресу, то скачивание сопровождается подробной информацией (вплоть до статус-бара, показывающего в режиме реального времени того, сколько процентов скачено):
    root@amorale:~# wget https://downloads.joomla.org/cms/joomla3/3-9-6/Joomla_3-9-6-Stable-Full_Package.zip
    --2019-05-17 23:46:28--  https://downloads.joomla.org/cms/joomla3/3-9-6/Joomla_3-9-6-Stable-Full_Package.zip
    Resolving downloads.joomla.org (downloads.joomla.org)... 72.29.124.146
    Connecting to downloads.joomla.org (downloads.joomla.org)|72.29.124.146|:443... connected.
    HTTP request sent, awaiting response... 303 See Other
    Location: https://s3-us-west-2.amazonaws.com/joomla-official-downloads/joomladownloads/joomla3/Joomla_3.9.6-Stable-Full_Package.zip?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIZ6S3Q3YQHG57ZRA%2F20190517%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20190517T204621Z&X-Amz-Expires=60&X-Amz-SignedHeaders=host&X-Amz-Signature=6a16c05547e770b6665bb7f5670f60acccc113712478c45fb05b23890b1cb958 [following]
    --2019-05-17 23:46:30--  https://s3-us-west-2.amazonaws.com/joomla-official-downloads/joomladownloads/joomla3/Joomla_3.9.6-Stable-Full_Package.zip?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIZ6S3Q3YQHG57ZRA%2F20190517%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20190517T204621Z&X-Amz-Expires=60&X-Amz-SignedHeaders=host&X-Amz-Signature=6a16c05547e770b6665bb7f5670f60acccc113712478c45fb05b23890b1cb958
    Resolving s3-us-west-2.amazonaws.com (s3-us-west-2.amazonaws.com)... 52.218.248.8
    Connecting to s3-us-west-2.amazonaws.com (s3-us-west-2.amazonaws.com)|52.218.248.8|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 13931139 (13M) [application/zip]
    Saving to: ‘Joomla_3-9-6-Stable-Full_Package.zip’
    
    Joomla_3-9-6-Stable-Full_Package.zip      100%[====================================================================================>]  13.29M  4.06MB/s    in 3.3s
    
    2019-05-17 23:46:34 (4.06 MB/s) - ‘Joomla_3-9-6-Stable-Full_Package.zip’ saved [13931139/13931139]​

Как загрузить файл на сервер linux с другим именем с помощью утилиты wget с опцией -O

Файлы, лежащие в удалённых хранилищах могут иметь названия, которые хочется поменять для того, чтобы они лежали у себя на сервере под другими именами. Можно конечно сперва скачать файл на сервер так, как показано в примере выше, а потом переименовать его, но wget позволяет сохранять загружаемые файлы и сразу присваивать им те имена, которые требуются, например:

wget -O joomla.zip https://downloads.joomla.org/cms/joomla3/3-9-6/Joomla_3-9-6-Stable-Full_Package.zip
  • Где:
    • wget –  вызов утилиты wget
    • -O — опция, которая служит указанием того, что скачиваемому файлу требуется задать другое имя
    • joomla.zip — имя файла, под которым он будет сохранён после скачивания
    • Joomla_3-9-6-Stable-Full_Package.zip — изначальное имя файла, которое было бы использовано, не примени мы опцию -O утилиты wget

Указание пути сохранения скачиваемого утилитой wget файла с помощью опции -P

Ну и последнее, что рассмотрим в этой статье, это то, как сохранить файл с помощью утилиты wget с удалённого места на сервер с указанием пути, по которому его нужно сохранить. Этого можно достичь, применив опцию -P в следующем формате:

wget -P ~/Downloads/ https://downloads.joomla.org/cms/joomla3/3-9-6/Joomla_3-9-6-Stable-Full_Package.zip
  • Где
    • -P –  опция, которая служит для указания того, что будет указан путь, по которому должно произойти сохранение скачиваемого файла
      • примечательным служит то, что если указанных папок на сервере на момент сохранения нет, то они будут созданы
    • ~/Downloads/ –  путь для сохранения скачиваемого файла (он может быть как абсолютным так и относительным)
    • ну и через пробел –  указание того, откуда качаем файл

Резюме

Таким образом утилитой wget можно скачать и сохранить файл в нужном месте на сервере с нужным именем. Остальные опции мне пока не нужны. =)

Пример использования в видео-инструкции:

Самый честный хостинг за 20+ лет существования Лунной Базы

Задумываешься о том, чтобы поднять свой сайт в Интернете? Уже пора подумать о том, какой хостинг выбрать?

Лунная База хостится 20+ лет на firstDVS. При этом, мыслей о том, чтобы перебраться на другой хостинг не было. (Но, при этом есть опыт работы с другими вариантами.)

Бывали с firstDVS разные ситуации, но, они бывают на всех хостингах. Единственное, что тут важно понять, - это то, что никто ничего тебе не будет впаривать... Но, и работать за тебя тоже никто не станет. Если в саппорт ответили: «Читайте по ссылке и разбирайтесь сами...» или вообще «Обратитесь за помощью к специалисту», - это повод углубить свои знания в области сайтостроения, а не бежать к тем, что пообещают: «Мы всё чиним и всё делаем за своих клиентов абсолютно бесплатно!» Никто никогда ничего ни за кого "по доброте душевной" не делал, не делает и не будет делать!

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню