Skip to content

Latest commit

 

History

History
93 lines (69 loc) · 5.94 KB

README_ru.md

File metadata and controls

93 lines (69 loc) · 5.94 KB

Обновление списка доменов на маршрутизаторе

Этот репозиторий содержит скрипты для обновления списка доменов на маршрутизаторе. Скрипты написаны на Bash и PowerShell, обеспечивают подключение к маршрутизатору по SSH, слияние списка доменов из локального файла, удаление дубликатов и строк, начинающихся с символа #, а также перезагрузку службы homeproxy.

Описание

Скрипты выполняют следующие действия:

  1. Подключение к маршрутизатору по SSH.
  2. Чтение текущего списка доменов с маршрутизатора.
  3. Слияние его с данными из локального файла.
  4. Удаление дубликатных записей, пустых строк и строк, начинающихся с символа #.
  5. Если строка в локальном файле начинается с # за которым следует домен, этот домен удаляется из результирующего списка.
  6. Копирование обновленного списка доменов обратно на маршрутизатор.
  7. Выполнение команды для перезагрузки службы homeproxy на маршрутизаторе.

Дополнительно, вы можете использовать следующую команду на маршрутизаторе для:

  1. Объединения file1.txt и file2.txt.
  2. Удаления доменов, указанных в file3.txt.
  3. Удаления дубликатов.
  4. Сохранения результата в file1.txt.
sort -u file1.txt file2.txt | grep -vxf file3.txt > tmp.txt && mv tmp.txt file1.txt

Эта команда может быть полезна, если инструмент, который вы используете на своем маршрутизаторе, не поддерживает работу с несколькими списками. В этом случае вы можете объединить списки непосредственно на маршрутизаторе после обновления основного списка.

Требования

  • Доступ по SSH к маршрутизатору
  • Конфигурационный файл .env
  • Bash (для систем Unix-like) или PowerShell (для Windows)

Настройка

1. Создание файла .env

Создайте файл .env в корневом каталоге репозитория с указанными ниже переменными. Вы можете использовать файл .env.example, предоставленный в репозитории, как шаблон.

ROUTER_HOST=ваш_ip_маршрутизатора
ROUTER_USER=ваше_имя_пользователя
SSH_KEY_PATH=~/.ssh/id_rsa
DOMAINS_FILE_PATH=/путь/к/файлу_списка_доменов_на_маршрутизаторе
LOCAL_DOMAINS_FILE=путь/к/локальному_файлу_списка_доменов.txt
RELOAD_COMMAND="/etc/init.d/homeproxy reload"
REMOVE_DOMAINS_FILE_PATH=/путь/к/файлу_списка_доменов_для_удаления_на_маршрутизаторе # Путь к файлу со списком доменов для удаления на маршрутизаторе
LOCAL_REMOVE_DOMAINS_FILE=путь/к/локальному_файлу_списка_доменов_для_удаления.txt # Путь к локальному файлу со списком доменов для удаления

2. Установка зависимостей

Убедитесь, что у вас установлены необходимые инструменты для работы с SSH на вашей системе.

3. Запуск скриптов

Bash

  1. Убедитесь, что у вас установлен Bash (обычно предустановлен на большинстве UNIX-подобных системах, таких как Linux и macOS).
  2. Сохраните Bash-скрипт в файл, например update_domains.sh.
  3. Сделайте файл исполняемым:
    chmod +x update_domains.sh
  4. Запустите скрипт:
    ./update_domains.sh

PowerShell

  1. Убедитесь, что у вас установлен PowerShell. Он предустановлен на Windows и доступен для установки на других операционных системах.
  2. Сохраните PowerShell-скрипт в файл, например update_domains.ps1.
  3. Откройте PowerShell.
  4. Перейдите в каталог, где находится файл скрипта:
    cd путь/к/каталогу
  5. Запустите скрипт:
    .\update_domains.ps1

Примечание

Если при запуске скриптов возникают ошибки, проверьте наличие файла .env и правильность значений в нем. Убедитесь, что у вас есть права доступа к SSH-ключу и вы можете подключиться к маршрутизатору по SSH.

Вклад

Мы приветствуем ваши предложения и улучшения! Создайте pull request или откройте issue для обсуждения.

Лицензия

Этот проект лицензирован под лицензией MIT. См. файл LICENSE для подробностей.