~s - скрипты-утилиты — различия между версиями

Материал из YourcmcWiki
Перейти к: навигация, поиск
м (pgraph-dot)
м
Строка 1: Строка 1:
 +
[[Категория:Разработка]]
 
По адресу [{{SVN|vitalif/trunk/scripts/}} ~/s] я поддерживаю некоторое количество простеньких полезных скриптов для решения различных задачек.
 
По адресу [{{SVN|vitalif/trunk/scripts/}} ~/s] я поддерживаю некоторое количество простеньких полезных скриптов для решения различных задачек.
  
Строка 12: Строка 13:
 
** '''противодействуют User JS’ам!'''
 
** '''противодействуют User JS’ам!'''
 
** ставят какие-то таймеры, замеряют времена выполнения и делают ещё фиг знает что троянистое
 
** ставят какие-то таймеры, замеряют времена выполнения и делают ещё фиг знает что троянистое
* с результатами поиска, выровненными по левому краю, а не по центру — удобно для широких мониторов
+
* с результатами поиска, выровненными по левому краю, а не по центру — удобно для широких мониторов
 
* со ссылочкой «Только на русском» под строкой поиска
 
* со ссылочкой «Только на русском» под строкой поиска
  
Строка 47: Строка 48:
 
* Основан на [http://wiki.codemongers.com/NginxSimpleCGI http://wiki.codemongers.com/NginxSimpleCGI].
 
* Основан на [http://wiki.codemongers.com/NginxSimpleCGI http://wiki.codemongers.com/NginxSimpleCGI].
  
== apache1-configure ==
+
== gcauthcd.pl ==
  
./configure с параметрами для установки Apache 1.x в /usr/local/apache1.
+
Клиент для МиГ-Телекомовской авторизации (''Gagarin-Club AUTHentication Client Daemon''), переписанный на Perl’е. Исходников реального gcauthcd я не видел, данный сделан чисто исходя из тривиального реверс-инжиниринга. Сам его и использую, по причине того, что SSL-сертификаты у них давно протухли, виндовый gcauthcd это не парит, а реальный линуксовый работать отказывается, а хакнуть и заставить его не получается по причине статической линковки.
  
* {{SVN|vitalif/trunk/scripts/apache1-configure|markup}}
+
Логин-пароль берёт либо из /etc/gcauth.passwd, либо из файла указанного <code>./gcauthcd.pl -c /path/to/password.file</code>, в формате «LOGIN:PASSWORD». Опция --fg даёт возможность не сворачивать его в background, --force — запускать при неработающей авторизации, время от времени открыть доступ он тогда всё равно будет пытаться.
  
== bashrc.any ==
+
* {{SVN|vitalif/trunk/scripts/gcauthcd.pl|markup}}
 
+
Команды для переключения кодировок 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://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}}
+
  
 
== fromto ==
 
== fromto ==
Строка 85: Строка 66:
 
* {{SVN|vitalif/trunk/scripts/fromto|markup}}
 
* {{SVN|vitalif/trunk/scripts/fromto|markup}}
  
== gamin.pl и gamin2.pl ==
+
== whichpm ==
  
Скрипты для мониторинга файлов и директорий с помощью модуля {{CPAN|Sys::Gamin}} версии 0.1 (gamin.pl) или 0.2 (gamin2.pl, с поддержкой userData). События выводятся на STDOUT. Использовать так:
+
Аналог which для Perl-модулей — говорит, где лежит тот или иной модуль.
  
  ./gamin.pl /directory1 /directory/2 some.file
+
  $ ~/s/whichpm Encode
  ./gamin2.pl /directory1 /directory/2 -u UserData2 some.file
+
  /usr/lib/perl/5.10/Encode.pm
  
Во втором случае со всеми событиями от /directory/2 вы будете получать свои данные UserData2.
+
* {{SVN|vitalif/trunk/scripts/whichpm|markup}}
 
+
* {{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.pl|markup}}
+
  
 
== mc.color ==
 
== mc.color ==
Строка 126: Строка 96:
 
* [{{SVN|vitalif/trunk/scripts/tpl.syntax}} tpl.syntax] — синтаксис шаблонов [[Шаблонизатор VMX::Template|VMX::Template]].
 
* [{{SVN|vitalif/trunk/scripts/tpl.syntax}} tpl.syntax] — синтаксис шаблонов [[Шаблонизатор VMX::Template|VMX::Template]].
 
* [{{SVN|vitalif/trunk/scripts/perl.syntax.patch}} патч для perl.syntax] — исправленный синтаксис для Perl кода.
 
* [{{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 ==
 
== pgraph-dot ==
Строка 150: Строка 103:
 
Использовать в каталоге Mercurial-репозитория следующим образом: <tt>pgraph-dot имяфайла.формат</tt>, где формат — один из поддерживаемых Graphviz форматов вывода (png, svg, dot и т. п.)
 
Использовать в каталоге Mercurial-репозитория следующим образом: <tt>pgraph-dot имяфайла.формат</tt>, где формат — один из поддерживаемых Graphviz форматов вывода (png, svg, dot и т. п.)
  
* [http://svn.yourcmc.ru/viewvc.py/vitalif/trunk/scripts/pgraph-dot?revision=831&view=markup pgraph-dot]
+
* [{{SVN|vitalif/trunk/scripts/pgraph-dot|markup}} pgraph-dot]
 
* '''[[Файл:PgraphDotExample.svg|Пример такого графа]]'''
 
* '''[[Файл:PgraphDotExample.svg|Пример такого графа]]'''
  
Строка 160: Строка 113:
  
 
* [http://svn.yourcmc.ru/viewvc.py/vitalif/trunk/scripts/sgold-note.pl?revision=748&view=markup sgold-note.pl]
 
* [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’анных файлов инструментом].

Версия 01:58, 19 февраля 2011

По адресу ~/s я поддерживаю некоторое количество простеньких полезных скриптов для решения различных задачек.

На данной странице описаны наиболее применимые из них, остальные можно увидеть по ссылке.

GoogleSrchUIMod.js

User JS для Opera, направленный на возвращение Гугла к прежнему (старому) виду:

  • без грёбаной панельки слева — она показывается свёрнутой, её можно развернуть
  • без рекламы справа
  • без javascript’ов, которые:
    • подменяют ссылки на сайты ссылками на редиректы так, что их не скопипастишь
    • противодействуют User JS’ам!
    • ставят какие-то таймеры, замеряют времена выполнения и делают ещё фиг знает что троянистое
  • с результатами поиска, выровненными по левому краю, а не по центру — удобно для широких мониторов
  • со ссылочкой «Только на русском» под строкой поиска

Основан на Opera UserJS To Get Back The Good Ol’ Google Search UI.

Устанавливать следующим образом — скачать по ссылке, создать любую папочку под свои юзер-скрипты, положить туда скачанный файл, прописать её в Preferences → Advanced → Content → JavaScript options → User JavaScript folder. Наслаждаться.

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.

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 — запускать при неработающей авторизации, время от времени открыть доступ он тогда всё равно будет пытаться.

fromto

Скрипт для перекодирования файлов из одной кодировки в другую. Использовать очень просто:

~/s/fromto cp1251 utf-8 файл1 файл2 ...

Поддерживает все кодировки, понимаемые Perl модулем Encode.

whichpm

Аналог which для Perl-модулей — говорит, где лежит тот или иной модуль.

$ ~/s/whichpm Encode
/usr/lib/perl/5.10/Encode.pm

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 кода.

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 (убрать # в начале). Использовать, просто натравливая его на эти самые файлы — не на каталоги, а на сами файлы, ибо рекурсивно каталоги скрипт не обходит.

bind9-forwarders-resolvconf

Скрипт для обновления forwarder’ов DNS-сервера bind при DHCP-обновлении набора доступных DNS. То есть, это скрипт для установки на машину-роутер, потому что, предположительно, только машина-роутер может иметь и внешний интерфейс, на котором работает DHCP, получающий обновления DNS провайдера, и bind, которому нужны корректные forwarder’ы.

Скрипт сильно похож на стандартный дебиановский /etc/resolvconf/update.d/bind и тоже предназначен для установки в /etc/resolvconf/update.d/, отличается от стандартного следующим:

  • Написан на perl ⇒ не использует «особую уличную магию» с кучей вызовов sed и посему не глючит
  • Берёт /etc/bind/named.conf.options.in, заменяет в нём $FORWARDERS на список обнаруженных DNS, разделённых точками с запятой (но без; в конце, то есть надо писать forwarders { $FORWARDERS; }) и записывает в /etc/bind/named.conf.options.
  • Не дёргает без надобности (когда конфиги не менялись) rndc reconfig.

convert-filenames

Скрипт для перекодирования имён файлов в каталоге из одной кодировки в другую. Сама ничего не выполняет, только выводит на STDOUT список команд mv A B. Пример использования:

./convert-filenames /path/ cp1251 koi8-r | sh

gamin.pl

Пригодный для автоматизации скрипт для мониторинга изменений файлов и директорий с помощью модуля 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» означает «мониторить нерекурсивно».

timestamp

Простая утилита преобразования дат для тех, кто привык к коду MediaWiki (wfTimestamp()).

./timestamp <желаемый_формат_даты> <дата>

На входе дата в любом из желаемых форматов. Единственное замечание — чтобы корректно парсить даты в формате TS_MW, нужно передавать их с пробелом в начале, типа ./timestamp TS_UNIX ' 20100101000000', чтобы «сплошное число» можно было отличить от 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-DDTHH: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, но а) рассчитан на патченую версию Sys::Gamin 0.2, с поддержкой userData, и б) сильно менее полезен.

./gamin2.pl /directory1 /directory/2 -u UserData2 some.file

Со всеми событиями от /directory/2 вы будете получать свои данные UserData2.

apache1-configure

./configure с параметрами для установки Apache 1.x в /usr/local/apache1.

bashrc.any

Команды для переключения кодировок koi8, utf8, cp1251 в Konsole из консоли, не прибегая к помощи менюшек. Версии для KDE 4.x и 3.x.

А команда yc вам не нужна, удаляйте её. :)

convert-many

Скрипт для перекодирования множества изображений из одного формата в другой с помощью GraphicsMagick или ImageMagick, возможно, в несколько потоков. Пример использования:

find /path/ -name *.png | xargs ./convert-many png jpg 2 | sh

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 означает, что инструмент был написан для восстановления Ljuser.gifАлискиных фотографий с жёсткого диска, полностью похеренного вирусом :-)

Вообще-то это велосипед — есть куча инструментов, а по области восстановления-добычи данных есть целая Forensics Wiki.