Изменения

~s - скрипты-утилиты

4800 байтов добавлено, 22:58, 18 февраля 2011
м
Нет описания правки
[[Категория:Разработка]]
По адресу [{{SVN|vitalif/trunk/scripts/}} ~/s] я поддерживаю некоторое количество простеньких полезных скриптов для решения различных задачек.
** '''противодействуют User JS’ам!'''
** ставят какие-то таймеры, замеряют времена выполнения и делают ещё фиг знает что троянистое
* с результатами поиска, выровненными по левому краю, а не по центру — центру — удобно для широких мониторов
* со ссылочкой «Только на русском» под строкой поиска
* Основан на [http://wiki.codemongers.com/NginxSimpleCGI http://wiki.codemongers.com/NginxSimpleCGI].
== apache1-configure gcauthcd.pl ==
./configure с параметрами Клиент для установки Apache 1МиГ-Телекомовской авторизации (''Gagarin-Club AUTHentication Client Daemon''), переписанный на Perl’е. Исходников реального gcauthcd я не видел, данный сделан чисто исходя из тривиального реверс-инжиниринга.x в /usr/local/apache1Сам его и использую, по причине того, что SSL-сертификаты у них давно протухли, виндовый gcauthcd это не парит, а реальный линуксовый работать отказывается, а хакнуть и заставить его не получается по причине статической линковки.
* {{SVN|vitalifЛогин-пароль берёт либо из /trunketc/scriptsgcauth.passwd, либо из файла указанного <code>./apache1gcauthcd.pl -c /path/to/password.file</code>, в формате «LOGIN:PASSWORD». Опция --fg даёт возможность не сворачивать его в background, --configure|markup}}force — запускать при неработающей авторизации, время от времени открыть доступ он тогда всё равно будет пытаться.
== bashrc.any == Команды для переключения кодировок koi8, utf8, cp1251 в Konsole из консоли, не прибегая к помощи менюшек. Версии для KDE [{{SVN|vitalif/trunk/scripts/bashrc.any?revision=706&view=markup}} 4.x] и [{{SVN|vitalif/trunk/scripts/bashrc.any?revision=704&view=markup}} 3.x]. А команда yc вам не нужна, удаляйте её. :) == convert-filenames == Скрипт для перекодирования имён файлов в каталоге из одной кодировки в другую. Сама ничего не выполняет, только выводит на STDOUT список команд mv A B. Пример использования:  ./convert-filenames /path/ cp1251 koi8-r | sh * {{SVN|vitalif/trunk/scripts/convert-filenames|markup}} == convert-many == Скрипт для перекодирования множества изображений из одного формата в другой с помощью [http://wwwgcauthcd.graphicsmagick.org/ GraphicsMagick] или [http://www.imagemagick.org/ ImageMagick], возможно, в несколько потоков. Пример использования:  find /path/ -name *.png | xargs ./convert-many png jpg 2 | sh * {{SVN|vitalif/trunk/scripts/convert-manypl|markup}}
== fromto ==
* {{SVN|vitalif/trunk/scripts/fromto|markup}}
== gamin.pl и gamin2.pl whichpm ==
Скрипты Аналог which для мониторинга файлов и директорий с помощью модуля {{CPAN|Sys::Gamin}} версии 0.1 (gamin.pl) Perl-модулей — говорит, где лежит тот или 0.2 (gamin2.pl, с поддержкой userData). События выводятся на STDOUTиной модуль. Использовать так:
.$ ~/gamin.pl s/directory1 /directory/2 some.filewhichpm Encode ./gamin2.pl usr/directory1 lib/directoryperl/5.10/2 -u UserData2 someEncode.filepm
Во втором случае со всеми событиями от /directory/2 вы будете получать свои данные UserData2. * {{SVN|vitalif/trunk/scripts/gamin.pl|markup}}* {{SVN|vitalif/trunk/scripts/gamin2.pl|markup}} == gcauthcd.pl == Клиент для МиГ-Телекомовской авторизации (''Gagarin-Club AUTHentication Client Daemon''), переписанный на Perl’е. Исходников реального gcauthcd я не видел, данный сделан чисто исходя из тривиального реверс-инжиниринга. Сам его и использую, по причине того, что SSL-сертификаты у них давно протухли, виндовый gcauthcd это не парит, а реальный линуксовый работать отказывается, а хакнуть и заставить его не получается по причине статической линковки. Логин-пароль берёт либо из /etc/gcauth.passwd, либо из файла указанного <code>./gcauthcd.pl -c /path/to/password.file</code>, в формате «LOGIN:PASSWORD». Опция --fg даёт возможность не сворачивать его в background, --force — запускать при неработающей авторизации, время от времени открыть доступ он тогда всё равно будет пытаться. * {{SVN|vitalif/trunk/scripts/gcauthcd.plwhichpm|markup}}
== mc.color ==
* [{{SVN|vitalif/trunk/scripts/tpl.syntax}} tpl.syntax] — синтаксис шаблонов [[Шаблонизатор VMX::Template|VMX::Template]].
* [{{SVN|vitalif/trunk/scripts/perl.syntax.patch}} патч для perl.syntax] — исправленный синтаксис для Perl кода.
 
[[Категория:Разработка]]
 
== fglrx_30.diff ==
 
Патч для компиляции модуля ядра <tt>fglrx</tt> Linux-версии проприетарного драйвера [http://ati.amd.com/products/catalyst/index.html ATi Catalyst] для версий 9-6 и 9-7 и версии Linux ядра 2.6.30. Для более новых версий драйвера <tt>fglrx</tt> патч не требуется.
 
* [http://svn.yourcmc.ru/viewvc.py/vitalif/trunk/scripts/fglrx_30.diff?view=log fglrx_30.diff]
 
== find-alisska.pl ==
 
Простейший carving-инструмент, написанный на Perl’е, для извлечения нефрагментированных JPEG-изображений из образов файлов. Data Carving — термин, перевода которого на русский я не нашёл, но означает он поиск и восстановление данных откуда-нибудь на основе некоторых эвристик. Alisska означает, что инструмент был написан для восстановления [[Файл:Ljuser.gif|link=http://alisska.livejournal.com/]][http://alisska.livejournal.com/ Алискиных] фотографий с жёсткого диска, полностью похеренного вирусом :-)
 
Вообще-то это велосипед — есть куча инструментов, а по области восстановления-добычи данных есть целая [http://www.forensicswiki.org/ Forensics Wiki].
 
* [http://svn.yourcmc.ru/viewvc.py/vitalif/trunk/scripts/find-alisska?view=log сам инструмент find-alisska.pl].
* [http://svn.yourcmc.ru/viewvc.py/vitalif/trunk/scripts/findall-alisska?view=log небольшой скрипт для обработки большого количества gzip’анных файлов инструментом].
== pgraph-dot ==
Использовать в каталоге Mercurial-репозитория следующим образом: <tt>pgraph-dot имяфайла.формат</tt>, где формат — один из поддерживаемых Graphviz форматов вывода (png, svg, dot и т. п.)
* [http://svn.yourcmc.ru/viewvc.py/{{SVN|vitalif/trunk/scripts/pgraph-dot?revision=831&view=|markup }} pgraph-dot]
* '''[[Файл:PgraphDotExample.svg|Пример такого графа]]'''
* [http://svn.yourcmc.ru/viewvc.py/vitalif/trunk/scripts/sgold-note.pl?revision=748&view=markup sgold-note.pl]
 
== bind9-forwarders-resolvconf ==
 
Скрипт для обновления [http://www.bind9.net/manual/bind/9.3.2/Bv9ARM.ch06.html#id2557350 forwarder’ов DNS-сервера bind] при DHCP-обновлении набора доступных DNS. То есть, это скрипт для установки на машину-роутер, потому что, предположительно, только машина-роутер может иметь и внешний интерфейс, на котором работает DHCP, получающий обновления DNS провайдера, и bind, которому нужны корректные forwarder’ы.
 
Скрипт сильно похож на стандартный дебиановский [[DebianMagicResolvConfBind|/etc/resolvconf/update.d/bind]] и тоже предназначен для установки в /etc/resolvconf/update.d/, отличается от стандартного следующим:
* Написан на perl &rArr; не использует «особую уличную магию» с кучей вызовов <tt>sed</tt> и посему не глючит
* Берёт /etc/bind/named.conf.options.in, заменяет в нём $FORWARDERS на список обнаруженных DNS, разделённых точками с запятой (но без; в конце, то есть надо писать forwarders { $FORWARDERS; }) и записывает в <tt>/etc/bind/named.conf.options</tt>.
* Не дёргает без надобности (когда конфиги не менялись) rndc reconfig.
 
* {{SVN|vitalif/trunk/scripts/bind9-forwarders-resolvconf|markup}}
 
== convert-filenames ==
 
Скрипт для перекодирования имён файлов в каталоге из одной кодировки в другую. Сама ничего не выполняет, только выводит на STDOUT список команд mv A B. Пример использования:
 
./convert-filenames /path/ cp1251 koi8-r | sh
 
* {{SVN|vitalif/trunk/scripts/convert-filenames|markup}}
 
== gamin.pl ==
 
'''Пригодный для автоматизации''' скрипт для мониторинга изменений файлов и директорий с помощью модуля {{CPAN|Sys::Gamin}} (использующего реализацию FAM’а (File Alternation Monitor) «libgamin») версии 0.1. События выводятся на STDOUT в две колонки. Первая — имя события (одно из: change, delete, start_exec, stop_exec, create, move, ack, exist, end_exist), вторая — имя файла. К имени события может быть дописаны суффиксы:
* «|D» = «путь является каталогом и запрошен нерекурсивный режим»
* «|M» = «запрошен рекурсивный режим, запускаю мониторинг каталога»
* «|C» = «путь удалён, отменяю мониторинг каталога»
 
Соответственно, скрипт можно использовать в каких-нибудь скриптах (шелл или не очень) как монитор ФС, читать и парсить его вывод, и действовать по ситуации.
 
Синтаксис вызова:
./gamin.pl [-n] /directory1 /directory/2 some.file
 
Опция «-n» означает «мониторить нерекурсивно».
 
* {{SVN|vitalif/trunk/scripts/gamin.pl|markup}}
 
== timestamp ==
 
Простая утилита преобразования дат для тех, кто привык к коду MediaWiki ([[mediawikiwiki:Manual:WfTimestamp|wfTimestamp()]]).
 
./timestamp <желаемый_формат_даты> <дата>
 
На входе дата в любом из желаемых форматов. Единственное замечание — чтобы корректно парсить даты в формате TS_MW, нужно передавать их с пробелом в начале, типа <tt>./timestamp TS_UNIX ' 20100101000000'</tt>, чтобы «сплошное число» можно было отличить от UNIX времени.
 
Форматы даты/времени поддерживаются следующие:
;TS_UNIX: UNIX время (число секунд с 01.01.1970).
;TS_DB: YYYY-MM-DD HH:MM:SS.
;TS_DB_DATE: YYYY-MM-DD.
;TS_MW: YYYYMMDDHHMMSS.
;TS_ISO_8601: YYYY-MM-DD'''T'''HH:MM:SS.
;TS_EXIF: YYYY:MM:DD HH:MM:SS.
;TS_RFC822: Wday, DD Mon YYYY HH:MM:SS +ZZZZ. Wday — 3-буквенная латинская аббревиатура дня недели, Mon — 3-буквенная латинская аббревиатура месяца, ZZZZ — зона, смещение от GMT в формате HHMM (часы, минуты).
;TS_ORACLE: DD-Mon-YYYY HH.MM.SS AM|PM.
 
== gamin2.pl и патч Sys::Gamin ==
 
Похож на gamin.pl, но а) рассчитан на [{{SVN|vitalif/trunk/scripts/Sys-Gamin-0.1-userData.diff}} патченую] версию Sys::Gamin 0.2, с поддержкой userData, и б) сильно менее полезен.
 
./gamin2.pl /directory1 /directory/2 -u UserData2 some.file
 
Со всеми событиями от /directory/2 вы будете получать свои данные UserData2.
 
* [{{SVN|vitalif/trunk/scripts/Sys-Gamin-0.1-userData.diff}} Патч к Sys::Gamin 0.1], добавляющий поддержку userData
* [{{SVN|vitalif/trunk/scripts/gamin2.pl|markup}} gamin2.pl]
 
== apache1-configure ==
 
./configure с параметрами для установки Apache 1.x в /usr/local/apache1.
 
* [{{SVN|vitalif/trunk/scripts/apache1-configure|markup}} apache1-configure]
 
== bashrc.any ==
 
Команды для переключения кодировок koi8, utf8, cp1251 в Konsole из консоли, не прибегая к помощи менюшек. Версии для KDE [{{SVN|vitalif/trunk/scripts/bashrc.any?revision=706&view=markup}} 4.x] и [{{SVN|vitalif/trunk/scripts/bashrc.any?revision=704&view=markup}} 3.x].
 
А команда yc вам не нужна, удаляйте её. :)
 
== convert-many ==
 
Скрипт для перекодирования множества изображений из одного формата в другой с помощью [http://www.graphicsmagick.org/ GraphicsMagick] или [http://www.imagemagick.org/ ImageMagick], возможно, в несколько потоков. Пример использования:
 
find /path/ -name *.png | xargs ./convert-many png jpg 2 | sh
 
* {{SVN|vitalif/trunk/scripts/convert-many|markup}}
 
== fglrx_30.diff ==
 
Патч для компиляции модуля ядра <tt>fglrx</tt> Linux-версии проприетарного драйвера [http://ati.amd.com/products/catalyst/index.html ATi Catalyst] для версий 9-6 и 9-7 и версии Linux ядра 2.6.30. Для более новых версий драйвера <tt>fglrx</tt> патч не требуется.
 
* [http://svn.yourcmc.ru/viewvc.py/vitalif/trunk/scripts/fglrx_30.diff?view=log fglrx_30.diff]
 
== find-alisska.pl ==
 
Простейший carving-инструмент, написанный на Perl’е, для извлечения нефрагментированных JPEG-изображений из образов файлов. Data Carving — термин, перевода которого на русский я не нашёл, но означает он поиск и восстановление данных откуда-нибудь на основе некоторых эвристик. Alisska означает, что инструмент был написан для восстановления [[Файл:Ljuser.gif|link=http://alisska.livejournal.com/]][http://alisska.livejournal.com/ Алискиных] фотографий с жёсткого диска, полностью похеренного вирусом :-)
 
Вообще-то это велосипед — есть куча инструментов, а по области восстановления-добычи данных есть целая [http://www.forensicswiki.org/ Forensics Wiki].
 
* [http://svn.yourcmc.ru/viewvc.py/vitalif/trunk/scripts/find-alisska?view=log сам инструмент find-alisska.pl].
* [http://svn.yourcmc.ru/viewvc.py/vitalif/trunk/scripts/findall-alisska?view=log небольшой скрипт для обработки большого количества gzip’анных файлов инструментом].