- Поиски и пременнование файлов по заданным критериям.
- Поиск файлов в большой файлопомойке
- Определение самого посещяемого сайта в сети
- Подсчёт количества просмотров на основе логов apache2
- Анализ .bash_history, сортировка по ключам
- Нумерация совпадений в 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 ~]$
- скрипт находит в папке с логами файл созданный за последний день
- вырезает из него uri
- выбриет из списка всех url соответсвующие запросам интересующих страниц
- выделяет id страниц
- подсчитывает количество обращений
- формирует mysql скрипт запросов
- остаётся только передать сгенерированный результат утилите 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