Показаны сообщения с ярлыком perl. Показать все сообщения
Показаны сообщения с ярлыком perl. Показать все сообщения

Страсти вокруг du -h

В очередной раз столкнулся с нехваткой дискового пространства на тестовом Linux-сервере,- значит пора чистить конюшни, то есть разобрать, наконец, завалы дистрибутивов "на всякий случай", бэкапы поудалять и вообще.

Обычный способ,- посмотреть сколько места занимает каждая папочка начиная с рута, зайти в самые толстые, найти вредителей и уничтожить,- и так рекурсивно пока df -h не начнёт показывать приемлимые цифры. Но перфекционизму нет предела,- хочется "чтобы одной командой", да "отсортировать по размеру", да ещё и в человекочитаемом формает, т.е. занимаемое место показывать в Гига-\ Мега- \Кило- байтах. Поигрался с du -h и sort'ом: не вытанцовывается, полез гуглить.

Набрёл на прекрасный топик с кучей рекомендаций, начиная от улучшенной версии coreutils >= 7.5, в которой sort умеет сортировать выдаваемые du -h значения, заканчивая половыми извращениями в виде Python-овских скриптов или вставок awk или Perl в командной строке. Но самое изящное решение оказалось простым, как Unix:

du -scBM * | sort -rn

Показывает отсортированные по убыванию размера папки и файлы в текущей директории. Размер приводится в мегабайтах, чего, вообщем-то, вполне достаточно для оценки,- стоит ли в папке искать залежи мусора, или пусть живёт?

SIGTRAN на Perl

В ЖЖ пользователя [info]mtve обнаружилась полезная вещица: реализация стека SIGTRAN на Perl. На всякий случай локальная копия SigTran.pl, оригинал по ссылке или из оригинального поста в жж

Сдвиг времени на Perl

Понадобилось в скрипте сгенерировать дату-время, отличающиеся от текущих на некоторое значение. Стандартная команда date это не умеет, по крайней мере в моём линупсе. Пришлось выкручиваться с помощью перла:

perl -MPOSIX -e 'print strftime("%Y-%m-%d %H:%M:S",localtime(strftime("%s",localtime())-60));'


Ключ -M говорит, что нужно подключить дополнительный модуль, -e выполняет следующие за ним операторы. "%Y-%m-%d %H:%M:%S" - формат вывода времени в формате strftime, -60 задаёт сдвиг времени. В данном случае на выходе получается дата-время на минуту меньше, чем текущее.

Самодельный DNS-blacklist с использованием PERL и BIND

Немного теории


DNSBL (DNS Block List) или RBL (Real-time Block List) используется для централизованного хранения записей о блокировке IP-адресов, например, в случае, если с адреса активно рассылается спам. Почтовый сервер, на который приходит письмо, берёт IP-адрес отправителя, и запрашивает для этого адреса запись в DNS-зоне. Запись для хоста должна быть как в зоне обратного просмотра reverse DNS,- октеты ip-адреса располагаются задом наперёд.