~s - скрипты-утилиты — различия между версиями
м (→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]. | ||
− | == | + | == 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}} | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | * {{SVN|vitalif/trunk/scripts/ | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
== fromto == | == fromto == | ||
Строка 85: | Строка 66: | ||
* {{SVN|vitalif/trunk/scripts/fromto|markup}} | * {{SVN|vitalif/trunk/scripts/fromto|markup}} | ||
− | == | + | == whichpm == |
− | + | Аналог which для Perl-модулей — говорит, где лежит тот или иной модуль. | |
− | + | $ ~/s/whichpm Encode | |
− | + | /usr/lib/perl/5.10/Encode.pm | |
− | + | * {{SVN|vitalif/trunk/scripts/whichpm|markup}} | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | * {{SVN|vitalif/trunk/scripts/ | + | |
== 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 кода. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== pgraph-dot == | == pgraph-dot == | ||
Строка 150: | Строка 103: | ||
Использовать в каталоге Mercurial-репозитория следующим образом: <tt>pgraph-dot имяфайла.формат</tt>, где формат — один из поддерживаемых Graphviz форматов вывода (png, svg, dot и т. п.) | Использовать в каталоге Mercurial-репозитория следующим образом: <tt>pgraph-dot имяфайла.формат</tt>, где формат — один из поддерживаемых Graphviz форматов вывода (png, svg, 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 ⇒ не использует «особую уличную магию» с кучей вызовов <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 я поддерживаю некоторое количество простеньких полезных скриптов для решения различных задачек.
На данной странице описаны наиболее применимые из них, остальные можно увидеть по ссылке.
Содержание
- 1 GoogleSrchUIMod.js
- 2 FastPerl
- 3 gcauthcd.pl
- 4 fromto
- 5 whichpm
- 6 mc.color
- 7 unzip.pl
- 8 Syntax
- 9 pgraph-dot
- 10 sgold-note.pl
- 11 bind9-forwarders-resolvconf
- 12 convert-filenames
- 13 gamin.pl
- 14 timestamp
- 15 gamin2.pl и патч Sys::Gamin
- 16 apache1-configure
- 17 bashrc.any
- 18 convert-many
- 19 fglrx_30.diff
- 20 find-alisska.pl
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.
- fastperl.pl — сам демон.
- fastperl.init — /etc/init.d-скрипт для запуска FastPerl в Debian/Ubuntu системах.
- Основан на http://wiki.codemongers.com/NginxSimpleCGI.
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.
- Патч к Sys::Gamin 0.1, добавляющий поддержку userData
- gamin2.pl
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 означает, что инструмент был написан для восстановления Алискиных фотографий с жёсткого диска, полностью похеренного вирусом :-)
Вообще-то это велосипед — есть куча инструментов, а по области восстановления-добычи данных есть целая Forensics Wiki.