Полезные однострочники

  1. Поиски и пременнование файлов по заданным критериям.
  2. Поиск файлов в большой файлопомойке
  3. Определение самого посещяемого сайта в сети
  4. Подсчёт количества просмотров на основе логов apache2
  5. Анализ .bash_history, сортировка по ключам
  6. Нумерация совпадений в sed

Имеется директория с разчнами файла, необходимо выбрать все (htm|html) файлы, скопировать в нужную папку дав всем файлам расширение .shtml

find text/ -maxdepth 1 -iname \*.htm\* | sed -r 's,/(.+).(htm|html),\0 \1,g'|awk '{print "cp "$1,"body/"$2".shtml"}'| sh

cp text/baner.htm body/baner.shtml
cp text/show.html body/show.shtml
cp text/login.htm body/login.shtml
cp text/creation.htm body/creation.shtml
cp text/linx.htm body/linx.shtml
cp text/fabrication.html body/fabrication.shtml
cp text/contacts.htm body/contacts.shtml
cp text/change.html body/change.shtml
cp text/style.htm body/style.shtml
cp text/price_add.htm body/price_add.shtml
cp text/optimization.htm body/optimization.shtml
cp text/price1.htm body/price1.shtml
cp text/index.htm body/index.shtml
cp text/main.htm body/main.shtml
cp text/price.htm body/price.shtml

Необходимо найти все большие видео файлы хранящиеся на компьютере, известно, что они могут валяться где угодно, тоесть ищем с корня

 find / -size +300M 2> /dev/null | egrep "(avi|ogg|ogv)$" 

find находит файлы больше 300 Мб, а egrep отбирает из найденного все в конце имени которого .(avi|ogg|ogv)

Так как статистика посещяемых сайтов обычно хранится в логах прокси сервера squid то анализировать придётся их

cat /var/log/squid/access.lo*[^z] |awk '{print $4, $7}' |egrep -v "/(404|403)" |awk -F / '{print $4}' |sort |uniq  -c| sort -n

Необходимо подсчитать честное количество просмотров страниц блога, проще всего для этого исследовать логи веб сервера, затем полученные данные вставить в mysql скрипт и передать утилите mysql для вставки в базу данные, эту задачу можно поставить в cron. Таким образом не озадачиваться больше подсчётами нагрузками на mysqyl. Для этого я в домашнем ~/bin/ создал файл view_make.sh

cat bin/view_make.sh 
#!/usr/bin/env bash
find rekoweb.ru/logs/ -type f -ctime -1 -exec bzcat {} \; | awk '{print $7}' |egrep "/blog(.py)?[/\?]id[/=][0-9]{1,3}$"  | egrep -o "([0-9]+)$" |sort | uniq -c |sort -n|awk '{print "update message set date=date, view=view+"$1" where id="$2";"}'
[u63987@ed55 ~]$
  1. скрипт находит в папке с логами файл созданный за последний день
  2. вырезает из него uri
  3. выбриет из списка всех url соответсвующие запросам интересующих страниц
  4. выделяет id страниц
  5. подсчитывает количество обращений
  6. формирует mysql скрипт запросов
  7. остаётся только передать сгенерированный результат утилите mysql

У меня имеется алиас - обёрка над mysql, она уже включает нужную кодировку, логин, пароли и нужную базу, мне необходимо только скомандовать:

:~ view_make.s |mmysql

Хотите узнать каким командами чаще всего пользуетесь, легко:

history |sort -k 5|uniq -c -f 4 |sort -n -k 1 -r | head -5

  21  1270  Oct 22 18:18:34 mmysql < bin/referer.sql  
  28   603  Oct 15 15:13:14 ls
  49   602  Oct 15 15:12:40 cvs update
  51   588  Oct 15 04:57:46 cd
  56   644  Oct 15 19:55:33 mmysql < bin/user_agent_date.sql
  78   636  Oct 15 19:37:40 mmysql < bin/referer.sql

Необходимо отметить имеющиеся в html теги h[1-4] дополнительными атрибутами id и name значением состоящим из имени тега и номера строки

sed = 000033.shtml |sed 'N;s/\n/\t/'|sed -r 's/([0-9]+)\t<(h[0-9])/<\2 id="\2-\1" name="\2-\1"/g'|sed -r 's/[0-9]+\t//g' > 000033.html

похожие страницы

  1. Gimp 2.6 в Debian 5.0 Lenny
  2. Python: strip split join
  3. Полезные ссылки
  4. Настройка кэширующего dns сервера bind
  5. Эникейщики дома, в бизнесе, во власти