Архивы: bash

Массовое изменение физических размеров картинок на сервере

в пакете Image Magic есть утилита mogrify которая многое умеет.

find . -name '*.[Jj][Pp][Gg]' -size +2M -print0 | xargs -0 mogrify -resize 1280">" -quality 90

Команда находит файлы JPG размером больше 2х мегабайт и дальше в работу вступает mogrify , которая уменьшает разрешение файла до 1280 (если ширина больше, меньшие не трогает, но компрессией может пройти сверху) по ширине (высота меняется пропорционально) и качество компрессии равно 90.

Список каталогов с размерами

это просто чтоб запомнить.
[cc lang=”bash”]du -h –max-depth=1[/cc]

Делаем скриншот сайта из консоли сервера ;)

Сегодня я расскажу вам необычную историю, попросили меня проследить за голосованием на одном из сайтов.
т.к. бывает за ночь один из кандидатов как прибавить 1-2 тыщи голосов, а потом весь день тишина…

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

В тырнете куча мануалов как сделать это на атвомате но если у нас установлен Х-сервер.
но у меня вот так сложилась что ни на одном сервере его нету.

Но не беда есть есть Fake Xserver завётся он xvfb
Устанавливаем
[cc lang=”bash”]aptitude install xvfb[/cc]

при тестовом запуске
[cc lang=”bash”]Xvfb :99 -ac[/cc]
он будет ругаться на кучу всего
[cc lang=”bash”]
[dix] Could not init font path element /usr/share/fonts/X11/misc, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/cyrillic, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/100dpi/:unscaled, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/75dpi/:unscaled, removing from list![/cc]

Исправляем это, устанавливаем всё нам необходимое

[cc lang=”bash”]sudo aptitude install x11-xkb-utils[/cc]
[cc lang=”bash”]sudo aptitude install xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic[/cc]
[cc lang=”bash”]sudo aptitude install xserver-xorg-core[/cc]

Также нам нужен будет файрфокс, для создания скриншотов.

[cc lang=”bash”]sudo aptitude install firefox[/cc]

Теперь нам надо поставить вот такую утилитку
CutyCapt – для генерации картинок с виртулаьного Хсервера.

[cc lang=”bash”]
sudo apt-get update
sudo apt-get -y install build-essential
sudo apt-get install xfs xfonts-scalable xfonts-100dpi
sudo apt-get install libgl1-mesa-dri
sudo apt-get install subversion libqt4-webkit libqt4-dev g++[/cc]

Создаём каталог временный где угодно (/home/username/CutyCapt например), в нём выполняют команды

[cc lang=”bash”]
svn co https://cutycapt.svn.sourceforge.net/svnroot/cutycapt
cd cutycapt/CutyCapt
qmake
make[/cc]
всё теперь у нас есть CutyCapt.

можно пробовать 🙂

создаём файл
touch screenner.sh
в него кидаем вот такой код

[cc lang=”bash”]#!/bin/bash

xvfb-run –server-args=”-screen 0, 1024x768x24″ /home/developer/scr/cutycapt/CutyCapt/CutyCapt –url=http://www.google.com –out=/var/exchange/screensite/`date +%F-%H-%M`.png
[/cc]
Мы запускаем виртуальный сервер с параметрами (0 скрин) указываем разрешение (если сайт длинный можно указать хоть 2000 во втором параметре)
/home/developer/scr/cutycapt/CutyCapt/ – это путь до CutyCap там мы делали qmake и make

Ну и куда сохранить, мне нужно было дату + время ставить.

Вот и всё готово.

Мог что-то упустить из виду т.к. по факту ставил пакетов больше, но пригодились ли они, не уверен.