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

Written by

in

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

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

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

Но не беда есть есть Fake Xserver завётся он xvfb
Устанавливаем

aptitude install xvfbCode language: Bash (bash)

при тестовом запуске

Xvfb :99 -acCode language: Bash (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!Code language: Bash (bash)

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

sudo aptitude install x11-xkb-utilsCode language: Bash (bash)
sudo aptitude install xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillicCode language: Bash (bash)
sudo aptitude install xserver-xorg-coreCode language: Bash (bash)

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

sudo aptitude install firefoxCode language: Bash (bash)

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

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++Code language: Bash (bash)

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

svn co https://cutycapt.svn.sourceforge.net/svnroot/cutycapt
cd cutycapt/CutyCapt
qmake
makeCode language: Bash (bash)

всё теперь у нас есть CutyCapt.

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

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

#!/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`.pngCode language: Bash (bash)

Мы запускаем виртуальный сервер с параметрами (0 скрин) указываем разрешение (если сайт длинный можно указать хоть 2000 во втором параметре)
/home/developer/scr/cutycapt/CutyCapt/ — это путь до CutyCap там мы делали qmake и make

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

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

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

Comments

5 ответов для «Делаем скриншот сайта из консоли сервера ;)»

  1. Аватар пользователя SoundMan

    имхо, ставить для такой цели, туеву хучу пакетов — бред) проще воспользоваться сервисом типа browsershots.org 😉

  2. Аватар пользователя admin
    admin

    SoundMan browsershots.org
    Позволит мне в течении дня делать скришнот сайта в нужном мне разрешении раз в минуту на протяжении пары дней?

  3. Аватар пользователя Slo

    admin, он не понимает о чем речь 😛 спасибо за мануал, пригодилось. Но немного не понятно, если делать скриншотер не а виртуалке, а на физ.сервере.

  4. Аватар пользователя Алексей
    Алексей

    Устанавливал практически так как описано тут, вот только проблема с кириллическими шрифтами. В скриншоте шрифт с русских сайтов не такой как на сайте.

    Никак не пойму в чем дело.

    На самом сервере есть все необходимые шрифты, и куча сайтов висит. Такая ощущение, что cutycapt их не видит. Как подключить? (

  5. Аватар пользователя Иван
    Иван

    Оооогромное спасибо! 🙂

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

    Поставил xvfb, сделал все, как по написанному. Работает!!!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *