Скрипт для аплоада скриншотов
Простенький скрипт на 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
.