Skip to content

ezhkov-ph/faster-ubuntu-mirror

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

🚀 faster-ubuntu-mirror

Автоматический выбор самых быстрых зеркал для Ubuntu.

📜 Введение

Этот скрипт на Bash предназначен для поиска и выбора самых быстрых зеркал Ubuntu на основе указанных кодов стран или вашего географического положения. По умолчанию скрипт выбирает одно самое быстрое зеркало, но с помощью опции -n можно выбрать несколько зеркал для повышения надежности.

Скрипт поддерживает как традиционные версии Ubuntu (до 24.04) с файлом /etc/apt/sources.list, так и новые версии Ubuntu 24.04+, которые используют формат .sources в директории /etc/apt/sources.list.d/.

📋 Требования

  • 🖥️ Скрипт предназначен для работы в операционных системах на базе Ubuntu.
  • 📦 Требуется наличие установленных утилит wget и bc.
  • 🛡️ Убедитесь, что у вас есть необходимые права для запуска скрипта (обычно sudo), особенно если вы планируете изменять системные файлы.
  • ⭐ Для Ubuntu 24.04+ скрипт изменит файл ubuntu.sources в директории /etc/apt/sources.list.d/.
  • 💾 Для старых версий Ubuntu скрипт изменит файл /etc/apt/sources.list.

📊 Используемые единицы измерения

Во избежание путаницы, вот единицы измерения, используемые в этом скрипте:

  • KB (Килобайты): Используется для размеров файлов (1 КБ = 1024 байта).
  • Kbps (Килобиты в секунду): Используется для скорости сети (1 Кбит/с = 1000 бит в секунду).
  • Mbps (Мегабиты в секунду): Используется для более высоких скоростей сети (1 Мбит/с = 1000 Кбит/с).
  • Gbps (Гигабиты в секунду): Используется для очень высоких скоростей сети (1 Гбит/с = 1000 Мбит/с).

Примечание: При указании размера тестового файла с помощью опции -s значение задается в KB (Килобайтах), но скорость зеркал отображается в битах в секунду (bps, Kbps, Mbps или Gbps), что является стандартом для измерения скорости сетевой передачи данных.

📥 Получение скрипта

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

  • Скачать скрипт:

    wget https://raw.githubusercontent.com/ezhkov-ph/faster-ubuntu-mirror/main/run.sh

    Эта команда скачает скрипт в ваш текущий каталог.

  • Клонировать репозиторий: Если вы предпочитаете клонировать весь репозиторий, используйте следующие команды:

    HTTPS:

    git clone https://github.com/ezhkov-ph/faster-ubuntu-mirror.git

    SSH:

    git clone [email protected]:ezhkov-ph/faster-ubuntu-mirror.git

🛠️ Подготовка к работе

  1. Права на исполнение: Если вы скачали скрипт, убедитесь, что у него есть права на исполнение.

    chmod +x run.sh
  2. Переход в каталог (если клонировали): Если вы клонировали репозиторий, перейдите в его каталог:

    cd faster-ubuntu-mirror
  3. Зависимости: Убедитесь, что у вас установлены необходимые зависимости.

    sudo apt-get install wget bc

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

Чтобы использовать скрипт, выполните следующие шаги:

  • ❓ Отображение справки (-h): Если вы не уверены, как использовать скрипт, вызовите справку:

    ./run.sh -h

    Это покажет вам описание всех доступных опций и примеры.

  • 🌍 Получение списка зеркал по коду страны (-c): Вы можете получить список зеркал для конкретных стран.

    ./run.sh -c US JP ID

    Эта команда получит зеркала из США (US), Японии (JP) и Индонезии (ID).

    Для автоматического определения региона по вашему IP (требуется jq):

    ./run.sh -c $(curl -s https://ipinfo.io/json | jq -r '.country')
  • 🔢 Выбор количества зеркал (-n): Позволяет указать, сколько самых быстрых зеркал нужно выбрать и применить. По умолчанию используется 1.

    ./run.sh -n 3 -c DE
  • ⚡ Автоматический выбор (-a): Для автоматического выбора самого быстрого зеркала (или зеркал) без запроса пользователя и с автоматическим созданием резервной копии.

    ./run.sh -a
  • 🗄️ Резервное копирование (-b): Если вы хотите создать резервную копию файлов с источниками apt перед внесением изменений.

    ./run.sh -b
  • 📏 Указание размера тестового файла (-s): Для настройки размера файла, используемого для тестирования скорости зеркал. Значение указывается в килобайтах (KB). По умолчанию 100KB.

    ./run.sh -s 500

    Это установит размер тестового файла в 500 КБ, что может дать более точные результаты на быстрых соединениях.

  • 📜 Принудительный режим совместимости (-L): Заставляет скрипт использовать старый метод (обновление sources.list) даже на Ubuntu 24.04+.

    ./run.sh -L -c US
  • ✨ Поведение по умолчанию: Если не указано никаких опций, скрипт будет использовать общий список зеркал с http://mirrors.ubuntu.com/mirrors.txt.

💡 Примеры использования

  • Автоматически выбрать 3 самых быстрых зеркала из Германии и Франции (с созданием бэкапа):

    sudo ./run.sh -c DE FR -n 3 -a
  • Интерактивно выбрать 2 зеркала из США и Японии, создав бэкап:

    sudo ./run.sh -b -c US JP -n 2
  • Протестировать зеркала с большим размером файла (500KB) для более точных результатов:

    ./run.sh -s 500 -c US
  • Автоматически выбрать самое быстрое зеркало с маленьким размером файла (50KB) для медленных соединений:

    ./run.sh -a -s 50
  • Объединить несколько опций:

    sudo ./run.sh -b -c JP US -s 200 -L -n 2

    Эта команда создаст бэкап, протестирует зеркала из Японии и США с файлом 200КБ, выберет 2 лучших и применит их в формате старого файла sources.list.

🐳 Docker

Если вы используете Docker, многие утилиты могут отсутствовать в образе. Убедитесь, что вы установили wget и bc в вашем Dockerfile.

🤝 Вклад в проект

Форки, пулл-реквесты и предложения по улучшению приветствуются! Не стесняйтесь создавать Issues, если вы нашли ошибку или у вас есть идея для новой функции.

  1. Форкните репозиторий.
  2. Создайте новую ветку (git checkout -b feature/AmazingFeature).
  3. Внесите свои изменения (git commit -m 'Add some AmazingFeature').
  4. Отправьте изменения в свою ветку (git push origin feature/AmazingFeature).
  5. Создайте Pull Request.

Спасибо всем, кто вносит свой вклад! ❤️

About

Auto choose ubuntu mirrors

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages