Главная » Статьи » Скрипты |
Добавление записей из базы Блеклистов в конфиг SquidGuard
Чтож оно делает: - Принимает один едеинственный аргумент - папку содержащую базу данных - Анализирует папку и выводит на стандартный вывод структуру вроде этой dest <имя подпапки>{ <domainlist/expressionlist/urllist> <имя папки>/<domains/expressions/urls> redirect http://192.168.10.1/block/error.php?type=<имя папки> } <имя подпапки>, !<имя подпапки>, !<имя подпапки>..... Для работы использовал питон 3ей версии. Code #!/usr/bin/env python # -*- coding: utf-8 -*- """ Скрипт для конвертирования базы блэклистов в конфиг SquidGuard-а. Использование: db2conf_squidguard.py db_dir db_dir -- папка содержащая базы """ import sys, os def main(): for line in perebor(sys.argv[1]): sys.stdout.write(line) def perebor(dir): """ Функция осуществляет перебор папок в целевой папке. на основе имени подпапки и содержащихся внутри файлов формируется следущаяя структура: dest <имя подпапки>{ <domainlist/expressionlist/urllist> <имя папки>/<domains/expressions/urls> redirect http://192.168.10.1/block/error.php?type=<имя папки> } и в конце выводит список папок в формате: <имя подпапки>, !<имя подпапки>, !<имя подпапки>..... """ try: names = os.listdir(dir) except OSError: print("ОШИБКА!!! Указан несуществующий католог для сканирования") sys.exit(1) nedo_conf=[] for name in names: fullname = os.path.join(dir, name) if os.path.isdir(fullname): nedo_conf.append("dest\t"+ name +" {\n") for shtuka in os.listdir(fullname): vstavka=dict(domains="domainlist", expressions="expressionlist", urls="urllist\t") try: nedo_conf.append("\t\t"+ vstavka[shtuka] +"\t\t"+'/'.join([name,shtuka])+"\n") except KeyError: continue nedo_conf.append("\t\t"+''.join(['redirect\t\thttp://192.168.10.1/block/error.php?type=', name])+"\n") nedo_conf.append("\t}\n\n") nedo_conf.append(", !".join(names)) nedo_conf.append("\n") return nedo_conf if __name__ == "__main__": main() | |
Просмотров: 1494 | Рейтинг: 0.0/0 |
Всего комментариев: 0 | |