Однострочники bash с объяснениями

Сие опубликовал в день года

o="-vvvvvv";for i in 0 {2..7}; do c="aptitude ${o:0:$i} moo";echo "$ $c"; $c; done

Исследование коровьих супер сил aptitude в одну строку. В aptitude есть пасхальное яйцо по аналогии c apt-get, но поначалу программа пытается отнекиваться и говорит, что в ней нет пасхальных яиц. Не верьте ей.

Как это работает

o="-vvvvvv"

Взята строка с самым длинным параметром.

for i in 0 {2..7}

Цикл берет значения i равные 0, 2, 3 и так до 7. Это делается для того, чтобы отрезать куски нужной длины от значения переменной o.

do c="aptitude ${o:0:$i} moo"

Здесь генерируются необходимые нам строки состоящие из слова aptitude и куска строки в переменной o длинной от нуля, то i. В конце добавляется слово moo. Пара примеров строк:

aptitude moo
aptitude -v moo

и так далее до

aptitude -vvvvvv moo

echo "$ $c"

Печатаем получившуюся команду в виде строки.

$c

Выполняем получившуюся команду.

Если что-то осталось не понятным, то спрашивайте в комментариях.

Однострочники для анализа лог-файлов Apache

Сие опубликовал в день года

Для диагностики проблем мне часто приходится просматривать логи Apache. Со временем я создал серию однострочников, которые я могу быстро скопировать и вставить для быстрого анализа лог-файла на предмет проблем, популярных страниц и прочего.

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

Однострочники - это обычно первый шаг в диагностике проблемы. Например, я хочу посмотреть данные за определенный период вместо использования команды tail на логе соединений. В этом случае я использую fgrep ‘2014:05:’ ./access.log чтобы посмотреть что происходило между 5:00 и 5:59. Или, может быть, я хочу посмотреть что делал определенный IP и тогда я грепаю по IP и получаю топ 20... Читать целиком.

Наверх