Этот репозиторий содержит скрипты для обновления списка доменов на маршрутизаторе. Скрипты написаны на Bash и PowerShell, обеспечивают подключение к маршрутизатору по SSH, слияние списка доменов из локального файла, удаление дубликатов и строк, начинающихся с символа #
, а также перезагрузку службы homeproxy
.
Скрипты выполняют следующие действия:
- Подключение к маршрутизатору по SSH.
- Чтение текущего списка доменов с маршрутизатора.
- Слияние его с данными из локального файла.
- Удаление дубликатных записей, пустых строк и строк, начинающихся с символа
#
. - Если строка в локальном файле начинается с
#
за которым следует домен, этот домен удаляется из результирующего списка. - Копирование обновленного списка доменов обратно на маршрутизатор.
- Выполнение команды для перезагрузки службы
homeproxy
на маршрутизаторе.
Дополнительно, вы можете использовать следующую команду на маршрутизаторе для:
- Объединения
file1.txt
иfile2.txt
. - Удаления доменов, указанных в
file3.txt
. - Удаления дубликатов.
- Сохранения результата в
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)
Создайте файл .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 # Путь к локальному файлу со списком доменов для удаления
Убедитесь, что у вас установлены необходимые инструменты для работы с SSH на вашей системе.
- Убедитесь, что у вас установлен Bash (обычно предустановлен на большинстве UNIX-подобных системах, таких как Linux и macOS).
- Сохраните Bash-скрипт в файл, например
update_domains.sh
. - Сделайте файл исполняемым:
chmod +x update_domains.sh
- Запустите скрипт:
./update_domains.sh
- Убедитесь, что у вас установлен PowerShell. Он предустановлен на Windows и доступен для установки на других операционных системах.
- Сохраните PowerShell-скрипт в файл, например
update_domains.ps1
. - Откройте PowerShell.
- Перейдите в каталог, где находится файл скрипта:
cd путь/к/каталогу
- Запустите скрипт:
.\update_domains.ps1
Если при запуске скриптов возникают ошибки, проверьте наличие файла .env
и правильность значений в нем. Убедитесь, что у вас есть права доступа к SSH-ключу и вы можете подключиться к маршрутизатору по SSH.
Мы приветствуем ваши предложения и улучшения! Создайте pull request
или откройте issue
для обсуждения.
Этот проект лицензирован под лицензией MIT. См. файл LICENSE для подробностей.