Shell scripting – Screener

Měli jste někdy problém, že potřebujete udělat screenshot a pak jej automaticky nahrát na FTP server? Toto a mnoho jiné vám poskytne můj script napsaný v Unix shell scriptu.

Shell script

Shell script

Původní učel programu byl jednoduchý:

  1. Vyfoť
  2. Ulož
  3. Uploadni
  4. Vlož odkaz do schránky

Tato myšlenka se během psaní tohoto scriptu rozvinula na takovou uroveň, že script umí:

  1. Vytvořit screenshot (celé obrazovky, nebo určitého okna)
  2. Uložit ho ve formátu např. PNG
  3. Vytvořit kopii v JPG, která se bude nahrávat na FTP.
  4. Zeptá se zda má screenshot uploadnout.
  5. Uploadne screenshot.
  6. Vloží odkaz do schránky.

Pro fungovaní toho scriptu jsou potřebné následné programy: Imagemagick, NcFTP, Xclip.

A nyní k samotnému scriptu:

#!/bin/sh

#By Wilima 11.10.09

clear

echo "_____________________________________"
echo "--------------SCREENER---------------"
echo "-------------------------------------"
echo

##################CONFIG#######################

#Format nazvu slozky pro aktualni den, rok-mesic-den
nazev_slozka=$(date +%y-%m-%d)

#Format nazvu pro screenshot, screenROKmesicDENhodinaMINUTAsekunda
nazev_screen="screen"$(date +%y%m%d%H%M%S)

#Cesta ke korenove slozce se screenshotama BEZ KOCOVEHO / !
cesta_ke_slozce="/mnt/data/files/pictures/screenshots"

#Cesta ke slozce pro ukladani screenu na FTP
cesta_ftp="/public_html/screens/"

#Format screenu pro archivaci
format="png"

#Format pro upload na web
format_upload="jpg"

#FTP udaje
server="VAS SERVER"
user="UZIVATELSKE JMENO"
password="HESLO"

#################################################

#Vytvoreni korenoveho adresare pro ukladani screenshotu
if [ -e $cesta_ke_slozce/ ]; then
	echo "Adresar pro ulozeni screenshotu.....OK"
else
	echo "Adresar pro ulozeni screenshotu.....FALSE"
	echo
	mkdir $cesta_ke_slozce/
	echo "Vytvarim korenovou slozku pro screenshoty.....OK"
fi

#Vytvoreni slozky pro ukladani screenshotu z dnesniho dne
if [ -e $cesta_ke_slozce/$nazev_slozka ]; then
	echo "Slozka pro dnesni den existuje...."
else
	echo "Vytvarim slozku pro dnesni den.....OK"
	mkdir $cesta_ke_slozce/$nazev_slozka
fi

#Vstup do slozky pro ukladani screenshotu
cd $cesta_ke_slozce/$nazev_slozka

#Screen urciteho okna/cele plochy, parametr -w za scriptem
if [ "$1" = "-w" ]; then
	echo "Vyberte okno, ze ktereho chcete udelat screen..."
	#Vytvori screen pouze daneho okna
	import $nazev_screen.$format
else
	echo
	echo "Screen bude vytvoren za 10sec..."
	echo
	#Pocka 10 sec nez vytvori screen
	sleep 10
	#Vytvori screen cele plochy
	import -window root $nazev_screen.$format
fi

#Upload screenshotu
echo
echo "Screen vytvoren... ($cesta_ke_slozce/$nazev_slozka/screen$nazev_screen.$format)"
echo
echo -n "Chcete screenshot uploadovat ? y,n"
echo
read upload

if [ $upload = "y" ]; then
	#Prevedni screenu do $format_upload pro upload
	convert $nazev_screen.$format $nazev_screen.$format_upload
	#Upload screenu na ftp server
	ncftpput -u $user -p $password $server $cesta_ftp $cesta_ke_slozce/$nazev_slozka/$nazev_screen.$format_upload
	#Smazani $format_upload screenu z lokalniho hdd
	rm $nazev_screen.$format_upload
	echo
	echo "Screen upload.....OK"
	echo
	#Vlozeni download linku do schranky
	echo "Download link (File: $nazev_screen.$format_upload): VAŠE_DOMENA.CZ/SLOŽKA_SE_SCREENY/$nazev_screen.$format_upload" | xclip -selection c
	sleep 30
else
	#Vlozeni lokalni cesty ke screenshotu do schranky
	echo "$cesta_ke_slozce/$nazev_slozka/$nazev_screen.$format" | xclip -selection c
	exit
fi

Snažil jsem se script okomentovat tak aby byl pochopitelný a použitelný. I když má script své mouchy je plně funkční. Testováno na Fedoře 11. Script může upravovat kdokoli, jen prosím o uvedení odkazu na můj původní článek.

Záložky: Kliknutím na ikony můžete doporučit článek dalším lidem.
  • del.icio.us
  • Facebook
  • Google
  • Bookmarky.cz
  • Linkuj
  • Live
  • Topodkazy
  • TwitThis
  • Vybrali.sme
This entry was posted in Linux, Počítače, Scripting and tagged , , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

Post a Comment

Your email is never published nor shared.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>