Сегодня разберемся, как скачать файл не имея под рукой curl/wget, а прям средствами bash! Видимо придется тему продолжить. Сегодня рассмотрим как такое осуществить.
Есть у меня файл который лежит тут. Нам нужно его как-то хитро скачать. Будем использовать сокеты.
Накидываем скрипт
#!/bin/bash
host="files.bashdayz.ru"
port="80"
path="/files/test.zip"
request="GET $path HTTP/1.1
Host: $host
Connection: close"
exec 3<>/dev/tcp/$host/$port
echo -e "$request" >&3
cat <&3 > test.zip
exec 3>&-
echo "Success"
Тут все просто:
1. Задаем переменные, хост, порт, путь до файла
2. Проставляем необходимые заголовки для запроса
3. Ну и собственно скачиваем файл на диск
Теперь разберем третий пункт подробнее. С виду какой-то ужас, но не боись, сейчас расскажу.
В первой строчке открывается файловый дескриптор с индексом 3 для чтения и записи данных через TCP-соединение + хост + порт.
Во второй строчке отправляем HTTP запрос на сервер через открытое соединение с дескриптором 3. Включаем в не