Основное

» Linux Docker 0.9 - краткое практическое руководство
Установка, настройка, запуск, основные моменты работы.

» Изучаем CGroups
Практический подход к изучению подсистемы ядра Linux

» db2dhcp - DHCP сервер на SQL СУБД
Сборка из исходников, настройка БД, запуск.

Последние записи

» Отличия синтаксиса C++ & Java и некоторые особенности Java
В рамках "заметок на полях" - краткий, очень поверхностный и слабо структурированный набор различий в...

» Восстановление старых разработок
Старые проекты по которым планируется восстановить работы

» Linux Docker 0.9 - краткое практическое руководство
Установка, настройка, запуск, основные моменты работы.

Скрипт для аплоада скриншотов

18 марта 2014

Простенький скрипт на Bash, который давно хотелось написать. Вдруг кому ещё пригодится.

Делает скриншоты и автоматически загружает их на сервер(а).

#!/bin/bash

url_base="http://imgs.netpatch.ru"
srv_dir="/var/www/imgs.netpatch.ru"

timeout=4
dst_dir="/tmp"
dst_img=$(mktemp $dst_dir/$(date +%Y%m%d)_XXXXXXXXXX.png)

[ "x$1" = 'xfull' ] && scrot $dst_img &>/dev/null || scrot -bs $dst_img &>/dev/null

size=$(ls -s $dst_img | cut -f 1 -d ' ')
[ "$size" -eq "0" ] && \
{ 
    zenity --notification --text 'Shooting canceled' --timeout=$timeout; 
    rm -f $dst_img; 
    exit 0; 
}

for i in 0 2
do
    server="srv${i}.netpatch.ru"
    zenity --notification --text "Uploading image to server $server..." --timeout=$timeout &
    { 
        scp $dst_img www-data@${server}:$srv_dir &>/dev/null || 
            { zenity --notification --text "Can't upload, some error..." --timeout=$timeout ; exit -1; }
        zenity --notification --text "Uploading to $server finished" --timeout=$timeout ; 
    } &
done

zenity --info --no-wrap --title="Image url" --text="$url_base/$(basename $dst_img)"

{ sleep 30; rm -f $dst_img &>/dev/null; } &

Использование

  • При запуске без параметров скрипт делает скриншот выделенной области.
    • Если передумали делать скриншот, то вместо выделения области экрана мышью достаточно нажать любую кнопку клавиатуры и операция отменится.
  • При запуске с параметром full делает скриншот всего экрана.

Настраиваем его запуск на какую-либо горячую клавишу, например на PrtSc/PrtSc+Alt и пользуемся.

Особенности

  • Загрузка осуществляется параллельно если серверов более одного.
  • Ход выполнения показывается tooltip-сообщениями при помощи zenity.
  • Итоговая ссылка выдаётся в popup окне сразу после начала загрузки изображения.

PS Разумеется, у вас должен быть предварительно настроенный сервер умеющий отдавать содержимое каталога $srv_dir по HTTP(s), и ваш публичный ключ в домашнем каталоге пользоватя www-data.


comments powered by Disqus