#!/bin/bash # Zmensi fotky na zadany format. Pokud jsou uz mensi nez pozadovany rozmer, tak nezmensuje. # dalsi info viz http://www.imagemagick.org/script/command-line-options.php?#resize # Autor: Henly # Dne: 7.10.2008 # Licence: GPL #kontrola vstupnich parametru (presne 1 parametr) if [ "$#" != 1 -o "$1" == "-h" -o "$1" == "--help" ]; then echo "Pouziti: zmensi_foto.sh <max_rozmer>" echo "napr: ./zmensi_foto.sh 640" echo "- zmensi na rozmer 640x480 nebo 480x640 v zavislosti na orientaci" echo "- zmensene fotky zapisuje pod nazvem stylu resize_640_nazev.jpg" echo exit 1 fi #typ integer typeset -i rozmer rozmer=$1 if [ "$rozmer" -lt 1 ]; then echo "Rozmer musi byt vetsi nez 0!" > /dev/stderr echo exit 1 fi ls *.[jJ][pP][gG] | grep " " if [ $? -eq 0 ]; then echo V nazvech fotek se nesmi vyskytovat mezery! Koncim. >> /dev/stderr exit 1 fi echo "Zmensuji jpg soubory v teto slozce (puvodni soubory budou zachovany):" for i in $(ls *.[jJ][pP][gG]); do echo -n . convert $i -resize "${rozmer}x${rozmer}>" resize_${rozmer}_$i done echo ; echo hotovo
#!/bin/bash # Posune cas foceni v EXIFu o hodinu dopredu. V pripade foceni mezi 23 a 24 hodinou, nutno upravit rucne. # Autor: Henly # Dne: 12.9.2oo8 # Licence: GPL echo Souboru k uprave: $# soubory=($*) #datumy foceni fotek do pole datumy=($(exif -mt 0x9003 ${soubory[*]} | awk '{print $1}')) nove_casy=($(exif -mt 0x9003 ${soubory[*]} | awk '{print $2}' | awk -F: '{if ($1 < 23) print $1+1":"$2":"$3; else print "doplnit_rucne"}')) puvodni_casy=($(exif -mt 0x9003 ${soubory[*]} | awk '{print $2}')) if [ ${#soubory[*]} -ne ${#datumy[*]} -o ${#soubory[*]} -ne ${#nove_casy[*]} -o ${#soubory[*]} -ne ${#puvodni_casy[*]} ]; then echo "Chyba aplikace! Koncim." >> /dev/stderr echo "Mozne duvody:" >> /dev/stderr echo " Nektere soubory neexistuji, nebo obsahuji mezery." >> /dev/stderr echo " Soubory nejsou fotografie, nebo neobsahuji EXIF data." >> /dev/stderr exit 1 fi pocet=${#soubory[*]} for i in $(seq 0 $[pocet-1]); do echo -e "${soubory[$i]}:\t${datumy[$i]} ${puvodni_casy[$i]}\t->\t${datumy[$i]} ${nove_casy[$i]}" done echo "Chcete posunout casy foceni takto o hodiny dopredu?" echo -n "(ano/ne) " read dotaz if [ "$dotaz" != "ano" ] ; then echo Neprovadim, koncim.. exit fi for i in $(seq 0 $[pocet-1]); do echo -n "." exif -mt 0x9003 ${soubory[$i]} --set-value="${datumy[$i]} ${nove_casy[$i]}" > /dev/null mv ${soubory[$i]}.modified.jpeg ${soubory[$i]} done echo ; echo hotovo
#!/bin/bash # Prida cas k nazvu fotky stylem 2008_09_27-11:49:08-Chuchelna.jpg. # Autor: Henly # Data: 2oo7 # Posledni uprava: 12.9.2oo8 # Licence: GPL ls *.[jJ][pP][gG] | grep " " if [ $? -eq 0 ]; then echo V nazvech fotek se nesmi vyskytovat mezery! Koncim. >> /dev/stderr exit 1 fi soubory=($(ls *.[jJ][pP][gG])) #datumy foceni fotek do pole casy=($(exif -mt 0x9003 ${soubory[*]} | sed -e 's/:/_/1' -e 's/:/_/1' -e 's/ /-/')) if [ ${#soubory[*]} -ne ${#casy[*]} ]; then echo Chyba aplikace, neshoduji se delky poli! Koncim. >> /dev/stderr exit 1 fi pocet=${#soubory[*]} for i in $(seq 0 $[pocet-1]); do echo -e "${soubory[$i]}\t->\t${casy[$i]}-${soubory[$i]}" done echo "Chcete prejmenovat fotky timto stylem?" echo -n "(ano/ne) " read dotaz if [ "$dotaz" != "ano" ] ; then echo Neprovadim, koncim.. exit fi for i in $(seq 0 $[pocet-1]); do echo -n "." mv ${soubory[$i]} ${casy[$i]}-${soubory[$i]} done echo ; echo hotovo
#!/bin/bash vysl=$(ping -q -s 1440 -i 0.2 -c 20 seznam.cz | tail -2) vypis=$( echo $vysl | awk '{print "Ztráta ne seznam.cz je "$6"."}' ; echo $vysl | awk '{print $14}' | awk -F/ '{print "Průměrné zpoždění je "$2" ms."}' ) kdialog --msgbox "$vypis"
#!/bin/bash #ulozime statistiky z minuleho mesice do souboru pro rychlejsi pristup #v ruznych distribucich muze byt soubor pojmenovan ruzne, nebo byt i komprimovan last -f /var/log/wtmp.1 > last.log #z jakeho mesice statistiky jsou mesic=$(tail -1 last.log | awk '{print $4}') #udelame si seznam regulernich uzivatelu + root #na ruznych distribucich zacinaji uzivatele ruznym id uziv=root\ $(awk -F: '$3>=1000 && $3<2000{print $1}' /etc/passwd) echo Statistiky\ prihlaseni\ za\ mesic:\ $mesic echo 'Nepovolene sluzby se nezobrazuji.' echo '---------------------------------' #postupne prochazime uzivatele a delame vystup for i in $uziv ; do #v last se uklada ze jmena jen 8 znaku, proto zkratim jmeno i_short=$(echo $i | dd bs=8 count=1 2>/dev/null) echo -n $i #hezci vystup :-) pokud je jmeno moc kratke, prida tabelator if [ $(echo $i | wc -m) -lt 9 ] ; then echo -n ' ' ; fi #jaky pouziva dany uzivatel shell shell=$(grep ^$i: /etc/passwd | awk -F: '{print $7}') #pokud je shell /bin/false, neukazovat info o prihlasovani na ssh if [ $shell != /bin/false ] ; then echo -n ' ssh:' echo -n $(grep ^$i_short\ last.log | grep pts | wc -l) else echo -n ' ' fi #pokud ma uzivatel zakazano ftp, neukazovat info o prihlasovani na ftp if [ ! $(grep -x $i /etc/ftpusers) ] ; then echo -n ' ftp:' echo -n $(grep ^$i_short\ last.log | grep ftpd | wc -l) else echo -n ' ' fi #celkovy pocet prihlaseni pro kontrolu echo -n ' celkem:' grep ^$i_short\ last.log | grep - | wc -l done #smazat soubor se statistikami rm last.log
#!/bin/bash cesta=/etc/skripty/co_je_noveho ################################### ###### nejdrive rychly prehled ######### ################################### #udela seznam adresaru find /mnt/ftpdisk/upload/ -type d > $cesta/upload_d.new find /mnt/ftpdisk/hotovo/ -type d > $cesta/hotovo_d.new #porovna s predchozim seznamem a zapise rozdily diff $cesta/hotovo_d $cesta/hotovo_d.new > $cesta/rozdily_d diff $cesta/upload_d $cesta/upload_d.new >> $cesta/rozdily_d #smaze puvodni seznam a nahradi jej novym rm $cesta/hotovo_d rm $cesta/upload_d mv $cesta/hotovo_d.new $cesta/hotovo_d mv $cesta/upload_d.new $cesta/upload_d #upravi seznamu: #> /mnt/ftpdisk/* prejmenuje na +./* #< - sed -e 's@< /mnt/ftpdisk/@- ./@' -e 's@> /mnt/ftpdisk/@+ ./@' $cesta/rozdily_d > $cesta/rozdily_d.temp mv $cesta/rozdily_d.temp $cesta/rozdily_d ################################### ######### kompletni prehled ########## ################################### #udela seznam souboru find /mnt/ftpdisk/upload/ > $cesta/upload.new find /mnt/ftpdisk/hotovo/ > $cesta/hotovo.new #porovna s predchozim seznamem a zapise rozdily diff $cesta/hotovo $cesta/hotovo.new > $cesta/rozdily.temp diff $cesta/upload $cesta/upload.new >> $cesta/rozdily.temp #smaze puvodni seznam rm $cesta/hotovo rm $cesta/upload #novy seznam prejmenuje na "vychozi" mv $cesta/hotovo.new $cesta/hotovo mv $cesta/upload.new $cesta/upload #upravi seznamu: #> /mnt/ftpdisk/* prejmenuje na +./* #< - sed -e 's@< /mnt/ftpdisk/@- ./@' -e 's@> /mnt/ftpdisk/@+ ./@' $cesta/rozdily.temp > $cesta/rozdily #nevypisovat *.r[0-9] (*.r01 *.r02 atd.) grep -v \.r[0-9][0-9]*$ $cesta/rozdily > $cesta/rozdily.temp2 mv $cesta/rozdily.temp2 $cesta/rozdily #nevypisovat *.[0-9] (*.001 *.002 atd.) grep -v \.[0-9][0-9]*$ $cesta/rozdily > $cesta/rozdily.temp2 mv $cesta/rozdily.temp2 $cesta/rozdily #nevypisovat *.part[0-9].rar (*.part01.rar *.part02.rar atd.) grep -v \.part[0-9][0-9]*\.rar $cesta/rozdily > $cesta/rozdily.temp2 mv $cesta/rozdily.temp2 $cesta/rozdily ################################### ########## vytvoreni mailu ########### ################################### #vynulovani echo -n "" > $cesta/posli #vytvori text mailu #test -s ... ok, pokud existuje a je vetsi nez 0 if [ -s $cesta/rozdily_d ]; then echo "Rychly prehled (jen adresare):" > $cesta/posli echo "==============================" >> $cesta/posli cat $cesta/rozdily_d >> $cesta/posli echo "" >> $cesta/posli echo "" >> $cesta/posli echo "" >> $cesta/posli fi if [ -s $cesta/rozdily ]; then echo "Kompletni prehled:" >> $cesta/posli echo "==================" >> $cesta/posli cat $cesta/rozdily >> $cesta/posli fi #rozesle maily #-e ... neposilat pokud je mail prazdny #ftpnovinky jsou nadefinovany v /etc/aliases cat $cesta/posli | mail -es "co je noveho" ftpnovinky
#!/bin/bash #tento skript ma za ukol hlidat vytizeni procesoru #To s tim grepem je trochu tezkopadny, ale #funguje to. (z dob, kdyz jsem se skripty zacinal) while true; do #stale opakuj dokola while ! awk '$1>=5' /proc/loadavg | grep -q . ; do sleep 60s done #pokud neni vytizeni vesti nez 5 tak pockej 60s #jinak posli mail awk '{print "Vytizeni serveru je: " $0}' /proc/loadavg | mail -s "Pretizeni serveru" henly@email.cz while awk '$1>=0.5' /proc/loadavg | grep -q . ; do sleep 60s done #pokud je vytizeni vetsi nez 0.5 tak cekej 60s #jinak posli mail awk '{print "Vytizeni serveru je: " $0}' /proc/loadavg | mail -s "Pretizeni pokleslo" henly@email.cz done
#!/bin/bash # Tento skript ma za ukol sledovat pokusy o prolomeni hesel. # Odmitnuta spojeni vychazi z blacklistu v /etc/hosts.deny # Skript je automaticky spousten cronem po rotaci logu. vystup=/etc/skripty/log zkoumane=/var/log/auth.log.0 echo "Pokusy o prolomeni hesla pres ssh:" > $vystup echo "==================================" >> $vystup grep Failed $zkoumane >> $vystup echo "" >> $vystup echo "Spatna hesla na ftp:" >> $vystup echo "====================" >> $vystup grep Incorrect $zkoumane >> $vystup echo "" >> $vystup echo "Odmitnuta spojeni:" >> $vystup echo "==================" >> $vystup grep refused $zkoumane >> $vystup echo "" >> $vystup mail -s "Kontrola pokusu o prunik do systemu" henly < $vystup rm $vystup
Různé statistiky - momentálně testuji: