~s - скрипты-утилиты
По адресу ~/s я поддерживаю некоторое количество простеньких полезных скриптов для решения различных задачек.
На данной странице описаны наиболее применимые из них, остальные можно увидеть по ссылке.
Содержание
FastPerl
Простой однопоточный FastCGI демон для запуска CGI-скриптов в FastCGI-среде без перекомпиляции и дополнительных телодвижений. Хорошо подходит, например, для запуска awstats.
Опции запуска:
- -h
- вывод справки;
- --verbose
- подробный вывод;
- --pid=PIDFILE
- установка пути в pid-файлу;
- -l=LOGFILE
- установка пути к файлу журнала;
- -S=UNIXSOCKET
- установка пути к UNIX-сокету, на котором оно будет слушать;
- -P=UNIXPORT
- установка TCP/IP-порта, на котором оно будет слушать и биндиться к 0.0.0.0 (ко всем интерфейсам);
- -r=REGEXP
- установка ограничений на SCRIPT_FILENAME. Если оно не удовлетворит регулярному выражению REGEXP, будет отдан ответ HTTP 403 Forbidden.
Init-скрипт прилагается, по умолчанию выполняется под пользователем www-data и группой www-data, логи в /var/log/fastperl.log, сокет в /var/run/fastperl.socket, PID-файл в /var/run/fastperl.pid, без ограничения. Init-скрипт понимает /etc/default/fastperl с переменными:
- USER=user:group
- LOGFILE=
- SOCKET=
- PIDFILE=
- RESTRICTION=
Для работы init-скрипта сам демон нужно класть как файл /usr/sbin/fastperl.
- fastperl.pl — сам демон.
- fastperl.init — /etc/init.d-скрипт для запуска FastPerl в Debian/Ubuntu системах.
- Основан на http://wiki.codemongers.com/NginxSimpleCGI.
apache1-configure
./configure с параметрами для установки Apache 1.x в /usr/local/apache1.
bashrc.any
Команды для переключения кодировок koi8, utf8, cp1251 в Konsole из консоли, не прибегая к помощи менюшек. Версии для KDE 4.x и 3.x.
А команда yc вам не нужна, удаляйте её. :)
convert-filenames
Скрипт для перекодирования имён файлов в каталоге из одной кодировки в другую. Сама ничего не выполняет, только выводит на STDOUT список команд mv A B. Пример использования:
./convert-filenames /path/ cp1251 koi8-r | sh
convert-many
Скрипт для перекодирования множества изображений из одного формата в другой с помощью GraphicsMagick или ImageMagick, возможно, в несколько потоков. Пример использования:
find /path/ -name *.png | xargs ./convert-many png jpg 2 | sh
fromto
Скрипт для перекодирования файлов из одной кодировки в другую. Использовать очень просто:
~/s/fromto cp1251 utf-8 файл1 файл2 ...
Поддерживает все кодировки, понимаемые Perl модулем Encode.
gamin.pl и gamin2.pl
Скрипты для мониторинга файлов и директорий с помощью модуля Sys::Gamin версии 0.1 (gamin.pl) или 0.2 (gamin2.pl, с поддержкой userData). События выводятся на STDOUT. Использовать так:
./gamin.pl /directory1 /directory/2 some.file ./gamin2.pl /directory1 /directory/2 -u UserData2 some.file
Во втором случае со всеми событиями от /directory/2 вы будете получать свои данные UserData2.
- http://svn.yourcmc.ru/viewvc.py/vitalif/trunk/scripts/gamin.pl?view=markup
- http://svn.yourcmc.ru/viewvc.py/vitalif/trunk/scripts/gamin2.pl?view=markup
gcauthcd.pl
Клиент для МиГ-Телекомовской авторизации (Gagarin-Club AUTHentication Client Daemon), переписанный на Perl’е. Исходников реального gcauthcd я не видел, данный сделан чисто исходя из тривиального реверс-инжиниринга. Сам его и использую, по причине того, что SSL-сертификаты у них давно протухли, виндовый gcauthcd это не парит, а реальный линуксовый работать отказывается, а хакнуть и заставить его не получается по причине статической линковки.
Логин-пароль берёт либо из /etc/gcauth.passwd, либо из файла указанного ./gcauthcd.pl -c /path/to/password.file
, в формате «LOGIN:PASSWORD». Опция --fg даёт возможность не сворачивать его в background, --force — запускать при неработающей авторизации, время от времени открыть доступ он тогда всё равно будет пытаться.
mc.color
Настройки цветов для Midnight Commander.
- Чёрный фон.
- Чёрный фон, красные менюшки — использую на боевых серверах, чтобы сразу понимать, где находишься.
unzip.pl
Используйте вместо стандартного unzip — после разархивации перекодирует кривые имена файлов, бывших русскими внутри архива.
Syntax
Описания синтаксиса для Midnight Commander.
- Syntax
- tt.syntax — синтаксис шаблонов Template::Toolkit.
- tpl.syntax — синтаксис шаблонов Template|VMX::Template“Template|VMX::Template” не может быть использован как заголовок статьи на данном сайте..
- патч для perl.syntax — исправленный синтаксис для Perl кода.
fglrx_30.diff
Патч для компиляции модуля ядра fglrx Linux-версии проприетарного драйвера ATi Catalyst для версий 9-6 и 9-7 и версии Linux ядра 2.6.30. Для более новых версий драйвера fglrx патч не требуется.
find-alisska.pl
Простейший carving-инструмент, написанный на Perl’е, для извлечения нефрагментированных JPEG-изображений из образов файлов. Data Carving — термин, перевода которого на русский я не нашёл, но означает он поиск и восстановление данных откуда-нибудь на основе некоторых эвристик. Alisska означает, что инструмент был написан для восстановления Алискиных фотографий с жёсткого диска, полностью похеренного вирусом :-)
Вообще-то это велосипед — есть куча инструментов, а по области восстановления-добычи данных есть целая Forensics Wiki.
- сам инструмент find-alisska.pl.
- небольшой скрипт для обработки большого количества gzip’анных файлов инструментом.
pgraph-dot
Скрипт для вывода графов зависимостей с использованием Graphviz веток патчей для расширения системы контроля версий Mercurial pbranch, служащего для автоматизированного управления множеством веток патчей.
Использовать в каталоге Mercurial-репозитория следующим образом: pgraph-dot имяфайла.формат, где формат — один из поддерживаемых Graphviz форматов вывода (png, svg, dot и т. п.)
sgold-note.pl
Небольшой скрипт для извлечения заметок из файлов базы данных (0:/system/apo/note/) платформ Siemens SGold (x65/x75 кроме S75/SL75) и NewSGold (S75/SL75).
По умолчанию запускается для SGold. Чтобы запустить для NewSGold, нужно раскомментировать строчку #my $h = 4; # for NewSGold (убрать # в начале). Использовать, просто натравливая его на эти самые файлы — не на каталоги, а на сами файлы, ибо рекурсивно каталоги скрипт не обходит.