Использование wget и curl в Linux

Использование wget и curl в Linux

    Загрузка файла
    curl  -L -O -o /home/toly/alpine.iso https://dlcdn.alpinelinux.org/alpine/v3.15/releases/x86_64/alpine-standard-3.15.4-x86_64.iso #Продолжить прерванную загрузку curl  -L -O -o /home/toly/alpine.iso -C - https://dl-cdn.alpinelinux.org/alpine/v3.15/releases/x86_64/alpine-standard-3.15.4-x86_64.iso

    -o Выбрать директорию для загрузки 
    -O Сохранять оригинальное имя файла
    -Y 100 Ограничение Чтобы не перезагружать сеть загрузкой (Кб)

    Отправка данных post
    curl --data "login=Admin&password=Admin" http://netbash.ru
    Сохранить заголовки ответов в файл
    curl -D /tmp/curl.txt  https://erp.tdx.by

    curl -F Отправить данные в виде формы


    Отправка данных методом GET
    curl http://site.com?login=test&password=test

    curl -I http://site.com #Получать только http заголовок, остальное игнорировать
    curl -T login.txt ftp://speedtest.tele2.net/upload/ #Отослать файл на сервер
    -s -S - Выводить информацию об ошибках
    -z - Скачать файл, только если он был модифицирован позже указанного времени
    -J - удалить заголовок из запроса
    -L - Принимать и обрабатывать перенаправления
    -p - Использовать прокси
    --proto - Указать протокол который нужно использовать
    Отправить заголовок и получить только заголовок

     curl -I --header 'If-Modified-Since: Mon, 26 Dec 2016 18:13:12 GMT' https://losst.ru
    Рекурсивная загрузка сайта с помощью wget
    #!/bin/bash # Получить и сохранить cookies используя логин и пароль wget --save-cookies ./cookies.txt \ --keep-session-cookies \ --post-data 'user=user&password=password' \ http://megasyte.ru/auth.php # Используя полученные cookies скачать страницу wget --load-cookies ./cookies.txt \ --mirror \ --recursive \ --page-requisites \ --no-clobber \ --html-extension \ --convert-links \ --restrict-file-names=windows \ --domains megasyte.ru \ --no-parent \ -p \ -P ./ \ http://megasyte.ru/page.php?id=1000 #--mirror - параметр для зеркального отображения. Эта опция включает рекурсию и отметку времени, устанавливает бесконечную глубину рекурсии и сохраняет списки каталогов FTP, эквивалентно ‘-r -N -l inf --no-remove-listing’. #--recursive: загрузить весь веб-сайт. #--domains site.org: не переходить по ссылкам за пределами site.org. #--no-parent: не переходить по ссылкам вне каталога tutorials/html/. #--page-requisites: получить все элементы, из которых состоит страница (изображения, CSS и т. д.). #--html-extension: сохранять файлы с расширением .html. #--convert-links: преобразовать ссылки, чтобы они работали локально, в автономном режиме. #--restrict-file-names=windows: изменить имена файлов, чтобы они работали и в Windows. #--no-clobber: не перезаписывать существующие файлы (используется, если загрузка прерывается и возобновляется). #-p загрузить все файлы, необходимые для правильного отображения данной HTML-страницы. #-P ./LOCAL-DIR: сохранить все файлы и каталоги в указанный каталог.
    Загрузка страницы с помощью curl

    В следующем примере утилита curl использует тот же cookie файл, что использовался выше утилитой wget:

    curl --cookie ./cookies.txt http://megasyte.ru/page.php?id=1000
    Статус ответа от сервера по доменному имени
    #!/bin/bash #Можно в этот же скрипт засунуть проверку сертификата на валидность https://www.ssllabs.com/ssltest/analyze.html echo "Введите только название домена без протокола и пробелов:" echo "Например: yandex.ru" read name #Убрать из текста все, что не буквы или цифры и не точка validchars="$(echo $name | sed -e 's/[^[:alnum:]\.\/]//g')" if [ $validchars != $name ] then { echo "Вы неправильно ввели домен" exit 1 } fi status="не определен" status=`curl -s -o /dev/null -w "%{http_code}" https://$name` echo "https://$name Статус: $status" status=`curl -s -o /dev/null -w "%{http_code}" http://$name` echo "http://$name Статус: $status" status=`curl -s -o /dev/null -w "%{http_code}" https://www.$name` echo "https://www.$name Статус: $status" status=`curl -s -o /dev/null -w "%{http_code}" http://www.$name` echo "http://www.$name Статус: $status"
    POST запрос с помощью curl

    В следующем примере извлекается токен из полученного post запроса, который в последующем используется для загрузки нужной страницы сайта

    #!/bin/bash #Запрос получения токена request_token=$(curl --request POST \ --url https://megasyte.ru/api/v3/auth/access_token \ --header 'content-type: multipart/form-data;' \ --form username='a.user@mail.ru' \ --form password='password' \ --form grant_type=password) 1>/dev/null #prefix=$1 #token=`echo $request_token | cut -d\" -f4` #curl https://megasyte.ru/api/v3/$prefix?%7B%22access_token%22:%22$token%22%7D

    Следующая команда покажет все перенаправления(переходы) с помощью опции -L и покажет только заголовки с помощью опции -i ( --include или -I, --head более короткий вариант )

    curl -L --head --max-redirs 2 yandex.ru

    Однако если сайт использует аутентификацию, передать эти данные при переходе на следующую страницу не получится
    С помощью дополнительной опции --max-redirs можно указать максимальное возможное кол-во перенаправлений


    Источники
    Последнее изменение: 10.10.2024 06:13


    Связанные темы

    Команда exec linux

    Использование команды tee в Linux

    Язык shell в Linux

    Использование curl в Linux

    Библиотеки Linux

    Использование md5sum

    Команда chattr и lsattr в Linux

    Использование awk Linux Alpine

    Использование sed в Linux

    Применение getopt в Linux

    Переменные окружения в Linux

    Блокировка пользователя в Linux

    Классы символов в Linux

    Использование tar в Linux

    Подстановка имен файлов

    Проверка на необходимость перезапуска после обновления пакетов

    Стандартные потоки и перенаправление ввода/вывода в Linux

    Функции в языке Shell

    Использование grep в Linux

    Архивирование и сжатие файлов в Linux

    Использование find Linux

    Права пользователей и групп

    Полезные команды и скрипты Linux

    Переменные в Linux

    Условная конструкция if в Linux

    Использование grep в Linux

    Использование xargs в Linux

    Фигурные скобки в bash

    Циклы в языке shell

    Использование оператора select в языке shell

    Внутренние и внешние команды linux

    Использование конструкции case в Linux

    Подстановка команд в Linux

    Мониторинг системы Linix с помощью getconf

    Использование ANCI последовательностей в Linux

    Здесь пока нет комментариев
    Добавлять комментарии могут только авторизованные пользователи

    Авторизоваться
    Я буду рекламой
    Я тоже буду рекламой
    И я
    ВВЕРХ