Przydatne skrypty

Wyłącznie system! Wątpliwości dotyczące aplikacji proszę umieszczać niżej, w odpowiednich forach.
Awatar użytkownika
urbinek
Sędziwy Jeż
Sędziwy Jeż
Posty: 44
Rejestracja: 03 wrz 2007, 11:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Kontakt:

Odp: Przydatne skrypty

Post autor: urbinek »

założenia ogólne:
- czasami potrzebujemy jakieś pliki z domowego komputera a jesteśmy np na uczelni
- chcemy skopiować filmy etc a łączymy się w rożny sposób lan/wlan

- mamy desktopa (bądź za poprawnie skonfigurowanym routerem) z zewnętrznym IP
- na desktopie jest zainstalowane i poprawnie skonfigurowane ssh oraz ftp

- mamy laptopa z którym chcemy się łączyć w domu bądź poza via lan/wifi :P
- na laptopie mamy KDE albo konquerora ( nie wiem czy nautilus będzie działać )


'daemon' dla desktopa

Kod: Zaznacz cały

#!/bin/bash
date > my_ip.tmp
# zdobywanie adresu etherneta
/sbin/ifconfig eth0 | grep -o 'inet addr:[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'| grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' >> /home/nasz_katalog_domowy/my_ip.tmp

# opcjonalne zdobywanie IP, TYLKO gdy mamy router a interfejs desktopa dostaje adresy wewnętrzne
# links -dump www.whatismyip.com | grep "Your IP Address Is" | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' >> my_ip.tmp

ftp -n adres_naszego_serwera.domena << KONIEC
user LOGIN HASLO_uwaga_nie_zakodowane!!
bin
prompt off
cd /domains/blablabla/sciezka/do/public_html
lcd /home/nasz_katalog_domowy
put my_ip.tmp
bye
KONIEC

rm /home/nasz_katalog_domowy/my_ip.tmp
trzeba w nim koniecznie pozmieniać ścieżki (muszą myc na sztywno, FTP nie obsługuje zmiennych) oraz domenę jak i login oraz hasło uwaga! hasło niezakodowane!
należy zwrócic też uwagę w jaki sposób nasz desktop łaczy się z internetem, jeśli jest bramą wystawczy adres ethernety wyjściowego (ma nadany zew IP)
jeśli jednak jest za routerem nalezy 'przekomentować' linki w ip2ftp, UWAGA! dostałem kiedyś bana za sprawdzanie IP co 5 min :) ustawicie crona na sprawdzanie co kilka godzin


następnie dodajemy do cron'a wysyłanie pliku z IP co 9 min na serwer FTP, wartość można zmienić
ip2ftp:

Kod: Zaznacz cały

urbinek@haruko:~$ crontab -e
# m h  dom mon dow   command
*/9 * * * * /home/nasz_katalog_domowy/skrypty/ip2ftp &> /dev/null


aktywator dla laptopa
files@home:

Kod: Zaznacz cały

#!/bin/bash
clear
# konfiguracja
# dane desktopa
user_name="urbinek"
desktop_lan_ip="192.168.1.1"
desktop_wlan_ip="192.168.0.1"
desktop_zew_ip="http://domain.pl/my_ip.tmp"

# dane laptopa
laptop_eth_iface="eth0"
laptop_lan_ip="192.168.1.19"
laptop_wlan_iface="wlan0"
laptop_wlan_ip="192.168.0.19"
##########################################################

# sprawdzamy połączenie na porcie ethernetowym, będzie się szybko kopiować
eth_ip=`/sbin/ifconfig $eth_iface | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | grep $laptop_lan_ip`

if [ "$eth_ip" = "$laptop_lan_ip" ] ; then 
  ping_lan=`ping -c1 $desktop_lan_ip | grep -o '100% packet loss'`
  if [ "$ping_lan" != '100% packet loss' ] ; then
    echo Wykryto połączenie loklne na "$laptop_eth_iface"!
    echo otwieram zasób ftp://$user_name@$desktop_lan_ip
    konqueror ftp://$user_name@$desktop_lan_ip
  else
    # gdy wszystko zawiedzie choiarz krzycz umierając
    echo "===============================KOMUNIKAT==============================="
    echo " Brak połączenia adresem z $desktop_lan_ip"
    echo " Interfejs $laptop_lan_iface otrzymał poprawny adres $laptop_lan_ip"
    echo " Sprawdź czy:"
    echo " - połączenie jest aktywne - połącz ponownie z siecią"
    echo " - kabelek jest na miejscu - wetknij go spowrotem"
    echo " - serwer ftp jest poprawnie skonfigurowany a porty odblokowane"
  fi
  exit 0
fi

# sprawdzamy połączenie na porcie wifi, od biedy może być jak sie kabelka wpinać nie chce :P
wlan_ip=`/sbin/ifconfig $wlan_iface | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | grep $laptop_wlan_ip`

if [ "$wlan_ip" = "$laptop_wlan_ip" ] ; then
  ping_lan=`ping -c1 $desktop_wlan_ip | grep -o '100% packet loss'`
  if [ "$ping_lan" != '100% packet loss' ] ; then
    echo Wykryto połączenie loklne na "$laptop_wlan_iface"!
    echo otwieram zasób ftp://$user_name@$desktop_wlan_ip
    konqueror ftp://$user_name@$desktop_wlan_ip
  else
    # gdy wszystko zawiedzie choiarz krzycz umierając
    echo "===============================KOMUNIKAT==============================="
    echo " Brak połączenia adresem z $desktop_wlan_ip"
    echo " Interfejs $laptop_wlan_iface otrzymał poprawny adres $laptop_wlan_ip"
    echo " Sprawdź czy:"
    echo " - karta sieciowa jest wyłączona - włącz ją spowrotem"
    echo " - połączenie jest aktywne - połącz ponownie z siecią"
    echo " - sieć wifi jest w zasięgu - przenieś laptopa bliżej nadajnika"
    echo " - sieć wifi jest aktywna - sprawdź nadajnik"
    echo " - serwer ftp jest poprawnie skonfigurowany a porty odblokowane"
  fi
  exit 0
fi

# jak połączenia lokalne zawiodły sprawdzamy czy wogóle jest internet
# jeślu jest znaczy, że jesteśmy poza domem i chcemy dogrzebać się zdalnie
# z pomocą przychodzi nam google.pl, mozna zastąpić każdym innym *pewnym* adresem - najlepiej IP
ping_google=`ping -c1 194.9.94.86 | grep -o '100% packet loss'`

if [ "$ip_google" != '100% packet loss' ] ; then
# pobieramy i przetwarzamy zewnętrzny adres IP aktualizowany przez desktopa
  wget $desktop_zew_ip -O ~/.my_ip.tmp
  ip_data=`head -n 1 ~/.my_ip.tmp`
  ip_home=`cat ~/.my_ip.tmp | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'`
  clear
  echo Ostatnia aktualizacja:	$ip_data
  echo Adres IP:		$ip_home

# tutaj łączymy się z zewnątrz i przydało by się jakieś szyfrowanko, sftp w zupełności wystarczy ale
# prędkości są wolniejsze o mniej więcej 40% - sprawdzałem w sieci lokalnej 100Mbps
  konqueror sftp://$user_name@$ip_home
else 
# gdy wszystko zawiedzie chociaż krzycz umierając
echo "=========================KOMUNIKAT=+======================="
echo " Brak połączenia z siecią lokalną oraz Internetem!"
echo " Upewnij się czy wszystko jest poprawnie skonfigurowane..."
echo " ...a kabelki w odpowiednich dziurkach ;)"
fi 
w górnej sekcji skryptu mamy konfigurację skryptu
należy podać wszystkie wymagane dane (fajnie by było skonfigurować DHCP w sieci lokalnej zeby przydzielał te same adresy, inaczej należy z zmodyfikować skrypt)

oba skrypty wykonujemy jako zwykły user, nietrzeba praw roota,

files@home można wywołać w konsoli bądź utworzyć aktywator

jak coś sobie przypomnę to dopisze :P
ciasteczko =D
Awatar użytkownika
czaroli
Sędziwy Jeż
Sędziwy Jeż
Posty: 82
Rejestracja: 07 lut 2008, 02:23
Płeć: Mężczyzna
Wersja Ubuntu: 11.10
Środowisko graficzne: Unity
Architektura: x86

Odp: Przydatne skrypty

Post autor: czaroli »

outslider pisze: Masz taki układ katalogów, jak powyżej, każdy subfolder musi zawierać plik xxxx.jpg z okładką i yyyyy.avi z filmem. Nazwy folderów (chyba plików też) nie mogą zawierać spacyj (nie chciało mi się naprawiać tego buga;p)

Skrypt odpalasz z konsoli podając mu ścieżkę do katalogu z subfolderami. Opcja -h wyświetla minipomoc, acz w niej jest to, co tu napisałem.

W katalogu tworzony jest index.html, o który chodziło. Oczywiśie po przeniesieniu htmla do innego katalogu NIE BĘDZIE działał poprawnie, bo linki nie będą się zgadzać.

Wesołych Świąt!
Outslider fajnie to generuje ale ..... są zawsze te ale.

Odpalam skrypt:
/home/czaroli/public_html/genfilm /srv/ftp/Filmy

Owszem skrypt generuje mi plik index.html z okladkami.
Klikajac na okladke mam link do filmu.

Czego mi brakuje?

1) brakuje mi tutulu który również był by linkiem i znajdowal sie pod obrazkiem.
2) zminielbym opcje pomocy z -h na -help poniewaz nazwy plikow moga byc "Bardzo.Straszny.Film.O.Zbijaniu-horror"
3) Fajnie by bylo jakby w inedex.html generowal sie div w ktorym bedzie zawarty header i footer (w header wstawiamy nagloweka w footer stopke z aoterem skryptu i linkami do innych wygenerowanych stron)
4) jesli bedzie wiecej jak 20 filmow w katalogu to generator tworzy w footer strony link np" << [1] [2] [3] >>
5) na koniec skrypt powinien wrzucac blank.jpg jak nie ma okladki. Obrazek blank.jpg powinien byc o takich samych rozmiarach co normalnie generowana okladka.

6) NAJWAŻNIEJSZE !

jesli odpalam generator to robi mi plik index.html w katalogu z filmami :) a powinien mi zrobic ten plik w katalogu w z ktorego go odpalam.

A tak w ogole to swietna robota :)

Wesołego Alleluja.
CzAroli
(jeśli problem jest rozwiązany - wy-edytuj temat i dodaj na początku [SOLVED] )
outslider
Sędziwy Jeż
Sędziwy Jeż
Posty: 68
Rejestracja: 03 lis 2007, 23:14
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Odp: Przydatne skrypty

Post autor: outslider »

Fajnie, że się podoba
Ok, ok, na razie nie mam czasu na poprawki, ale może sam zmienisz? Sugestie:

1). Wydaje mi się, że wyświetla nazwy plików .avi, odpowiada za to linijka:

Kod: Zaznacz cały

echo "$vid" >> "$tmp/html_output.html"
. Inaczej tytułu raczej nie wyświetli, bo skąd ma go znać?
2). Zmiana nazwy opcji -h na -help czy --help (jeszcze mniej kolizyjne) to tylko zamiana

Kod: Zaznacz cały

help=`echo $opts|grep " -h"`
na

Kod: Zaznacz cały

help=`echo $opts|grep " --help"`
Aczkolwiek kolizję wywoła bodaj tylko " -h" ze spacją przed "-h", choć nie jestem pewien.

3). Nagłówka szczerze powiem nie chciało mi się robić;p Będzie miło, jak sam coś zaproponujesz
4). Nie pomyślałem o tym, można by się pobawić...
5). Z tym blankiem to też prawda. Można sprawdzić prostym if-em, czy istnieje okładka i dorzucić instrukcje. Ale trzeba oczywiście dodać obrazek do skryptu (na marginesie: można to zrobić na dwa sposoby: oddzielny plik z obrazkiem albo obrazek zakodowany binarnie na końcu skryptu, za "exit").
6). To też nie masakra, zasadniczo miałem zrobić taką możliwość, że doda się jako parametr miejsce dla wynikowego pliku, ale zrezygnowałem z braku czasu (a nawet jest w sekcji #general config zmienna link_prefix="." która miała za to odpowiadać, aczkolwiek jest nieużywana...)

Powodzenia w przeróbkach, pochwal się na koniec wynikiem. W ogóle w skrypcie jest nieco bałaganu...
Awatar użytkownika
pyx-84
Sędziwy Jeż
Sędziwy Jeż
Posty: 97
Rejestracja: 28 paź 2008, 21:35
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Przydatne skrypty

Post autor: pyx-84 »

Zmiana rozmiarów zdjęć i stopnia ich kompresji w zadanym katalogu, wraz z podkatalogami.

./skrypt /home/user/Photos 800x600 75

Kod: Zaznacz cały

#!/bin/bash
# Autor: pyx-84

if [ "$1" = "" ]; then
echo "Uzycie: $0 <width>x<height> quality";
echo "Example:";
echo "$0 folder_ze_zdjeciami 800x600 85 (max.: 100)";
else
echo "Pracuje...";
find $1 -type f -exec convert -resize $2 -quality $3 {} {} \;
echo "Zakonczono sukcesem ";
fi
Software Should Be Free As In Freedom !
Awatar użytkownika
mateusz16
Sędziwy Jeż
Sędziwy Jeż
Posty: 70
Rejestracja: 04 wrz 2007, 19:44
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: KDE Plasma
Architektura: x86
Kontakt:

Odp: Przydatne skrypty

Post autor: mateusz16 »

Rapidshare obsluga kont premium

Kod: Zaznacz cały

#!/bin/bash
#Autor : Misq
#rapidget 0.2 rc 
     case "$1" in
	acc-info)echo "Login :"
		     cat ~/.rs.login
		     echo "Haslo :"
		     cat ~/.rs.haslo
		    ;;

	configure) 
		   rm ~/.rs.login
		   rm ~/.rs.haslo
		   rm ~/.rs.sciezka
		   rm ~/.rs.speed
		   clear
		   echo " "
		   echo "Dane konfiguracyjne wyczyszczone jezeli przerwiesz konfiguracje pobieranie bedzie niemożliwe"
		   echo " "
		   echo "Premium Login:"
		   read login
		   echo "Premium Password"
		   read pass
		   echo "Sciezka do folderu w ktorym beda zapisywane pliki np (/home/user/Downlad"
		   echo "NIE UŻYWAJ ZNAKU "~" ;P"
		   read sciezka
		   parametr=$(echo $sciezka |cut -c-1)
		   if [ "$parametr" !=  "/" ]; then
		   echo "bledna sciezka przyjmowanie wartosci domyslnej "~/" "
		   echo "~/" >> ~/.rs.sciezka
		   else
		   echo $sciezka >> ~/.rs.sciezka
		   echo "1000K" >> ~/.rs.speed
		   echo $login >> ~/.rs.login
		   echo $pass >> ~/.rs.haslo
		   echo "Dane wprowadzone poprawnie, predkosc pobierania ustawiona na 1000Kb/s, aby zmienic zobacz "rapidget help" "
		   fi;; 

        add)
	    kate ~/.rs.temp	
	    cat ~/.rs.temp |grep rapidshare >> ~/.rs.lista
	    echo "dodano $(wc -l ~/.rs.lista |cut -c-2) linków" 
	    rm ~/.rs.temp
	    ;;
	
	clear)rm ~/.rs.lista   
	      echo "usuniecie listy plików ukończone";;
	
	status) if [ -e ~/.rs.lista ]; then
		echo "pozostało $(wc -l ~/.rs.lista|cut -c-2) linkow do pobrania"
		else echo "Brak linków w schowku"
		fi
		;;
	
	speed) 	echo "podaj limit Predkosci pobierania (Kb/s) np 140"
		read speed
		rm ~/.rs.speed
		echo $speed"K" >> ~/.rs.speed
		echo "Zresetuj skrypt jezeli cos pobierasz (zostanie wznowione) w inny przypadku zmiany beda aktywne przy kolejnyn pobieranym linku"
		;;
	
	download) clear		   
		  if [ -e ~/.rs.login ]; then
		  echo "Login wprowadzone wczesniej"
		  else
		  echo "Dane zostały wprowadzone niepoprawnie, odpal skrypt z parametrem "configure" w celu identyfikacji użytkownika"
		  fi

		  if [ -e ~/.rs.haslo ]; then
		  echo "Haslo wprowadzone wczesniej"
		  else
		  echo "Dane zostały wprowadzone niepoprawnie, odpal skrypt z parametrem "configure" w celu identyfikacji użytkownika"
		  fi 
		  user=$(cat ~/.rs.login) 
		  pass=$(cat ~/.rs.haslo)
		  sciezka=$(cat ~/.rs.sciezka)
		  speed=$(cat ~/.rs.speed) 
		  ile=$(wc -l ~/.rs.lista|cut -c-2)
		  if [ $ile != 0 ]; then
		  until [ $ile = 0 ]; do
		  link=$(head -1 ~/.rs.lista)
		  wget -c --directory-prefix=$sciezka --limit-rate=$speed --user=12094471 --password=76P8KhzV $link
		  bez_pierwszego=$[$ile - 1]
		  tail -$bez_pierwszego ~/.rs.lista >> ~/.rs.temp
		  rm ~/.rs.lista
		  cat ~/.rs.temp >> ~/.rs.lista
		  rm -r	~/.rs.temp
		  ile=$(wc -l ~/.rs.lista|cut -c-2)
		  done
		  else
		  echo "Zakończono pobieranie"
		  fi
		  rm ~/.rs.lista
		  ;;
	help) clear
	      
	      echo "składnia: "
	      echo "rapidget POLECENIE"
	      echo " "
	      echo "dostepne polecenia:"
	      echo -e '\E[32m'
	      echo "configure	ustanawianie nazwy uzytkowanika i hasla"
	      echo "add  		dodawanie linkow - mozesz wklejac całe zawartosci strony, program sam rozpozna linki rapidshare ;)"
	      echo "status 		status pobierania"
              echo "download         pobieranie pliku"
	      echo "clear  		czyszczenie listy plikow do pobrania"
	      echo "acc-info  	wyswietlanie aktualnie uzywanych danych konta premium"
	      echo "speed		zmienia maksymalna predkosc pobierania"
	      echo -e '\E[0m'
	      ;;
	*)  
	    echo " "
	    echo "uruchom skrypt z parametrem help (rapidget help) aby otrzymać liste dostępnych poleceń" 
	      ;;
      esac

najlpeiej zapizac jako rapidget w folderze /bin
potem wklepac w konsoli

Kod: Zaznacz cały

rapidget help
uwaga !!!! czasem linijke

Kod: Zaznacz cały

 wget -c --directory-prefix=$sciezka --limit-rate=$speed --user=$user --password=$pass $link

nalezy zastapic

Kod: Zaznacz cały

wget -c --auth-no-challenge --directory-prefix=$sciezka --limit-rate=$speed --user=$user --password=$pass $link
zalezne od wersji wget ;]
//edit działanie programu

Kod: Zaznacz cały

mateusz@mateusz-laptop:~$ rapidget help                                          
składnia:
rapidget POLECENIE

dostepne polecenia:

configure       ustanawianie nazwy uzytkowanika i hasla
add             dodawanie linkow - mozesz wklejac całe zawartosci strony, program sam rozpozna linki rapidshare ;)
download     pobieranie pliku
status          status pobierania
clear           czyszczenie listy plikow do pobrania
acc-info        wyswietlanie aktualnie uzywanych danych konta premium
speed           zmienia maksymalna predkosc pobierania

Awatar użytkownika
czaroli
Sędziwy Jeż
Sędziwy Jeż
Posty: 82
Rejestracja: 07 lut 2008, 02:23
Płeć: Mężczyzna
Wersja Ubuntu: 11.10
Środowisko graficzne: Unity
Architektura: x86

Odp: Przydatne skrypty

Post autor: czaroli »

mateusz16 jak wrzucasz skrypt to podawaj opis jak to dziala, do czego sa zmienne itd...Opis programu podaj po prostu.

Dla pozostałych oraz samego mateusza podaje link do tematu pobieranie z rapida znajdujacy sie pod tym adresem u nas na forum:
viewtopic.php?p=462211#post462211
;-)
CzAroli
(jeśli problem jest rozwiązany - wy-edytuj temat i dodaj na początku [SOLVED] )
gaijin
Sędziwy Jeż
Sędziwy Jeż
Posty: 45
Rejestracja: 06 lis 2006, 12:17
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: Unity
Architektura: x86_64

Odp: Przydatne skrypty

Post autor: gaijin »

mateusz16 nie podał że aby ściągać trzeba dodać parametr download czyli rapidget download (nie ma tego w help)
Awatar użytkownika
mateusz16
Sędziwy Jeż
Sędziwy Jeż
Posty: 70
Rejestracja: 04 wrz 2007, 19:44
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: KDE Plasma
Architektura: x86
Kontakt:

Odp: Przydatne skrypty

Post autor: mateusz16 »

juz poprawione sorka za blad ;)
michal_czypek

Odp: Przydatne skrypty

Post autor: michal_czypek »

Mały czasem przydatny skrypt do zmiany MAC przy każdym uruchomieniu kompa.
#!/bin/bash
d=`date +%d`
mac=`grep _$d_..:..:..:..:..:.. mac | cut -d '_' -f3`
sudo ifconfig wlan0 down
sudo ifconfig wlan0 hw ether $mac
sudo ifconfig wlan0 up
skrypt czyta z pliku mac w którym mamy podane przykładowe 31 adresów MAC w postaci:
_1_00:01:02:03:04:05
_2_00:02:03:04:05:06
_3_00:03:04:05:06:07
...
_31_00:04:05:06:07:08
itd.

Skrypt sprawdza i wyciąga z systemu dzień który dziś mamy i odpowiednio z pliku wycina odpowiedni adres MAC i ustawia do dla interfejsu wlan0.

Oczywiście musimy wrzucić skrypt do "autostartu":)
LukAs
Wytworny Kaczor
Wytworny Kaczor
Posty: 284
Rejestracja: 30 paź 2005, 21:56
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Odp: Przydatne skrypty

Post autor: LukAs »

Konwerter Zdjęć

Video (.ogg) prezentacja

Obrazek
Obrazek
Obrazek
Obrazek

Kod: Zaznacz cały

#!/bin/bash
## Nautilus Converter Photo
## Autor: lukas
## Kontakt: luka.poland@gmail.com
## Licencja: GPL v3

case $LANG in
	pl*)
	  scripts_name='Konwerter Obrazów'
	  choice_column='Wybór'
	  more_options_column='Dodatkowe opcje'
	  scale_column='Dostępne rozdzielczości'
	  compres_text_column='format kompresji'
	  compres_text_column2='Obsługuje'
	  new_file_name_text='Zapisać jako?'
	  options_rename='Zmień nazwę...'
	  options_compress_files='Skompresuj pliki (.zip. tar.gz)'
	  options_send_file_to='Wyślij skompresowane do...'
	  send_file_desktop='Pulpit'
	  send_file_dropbox='Katalog Public (Dropbox)'
	  send_file_alternative='Inny'
	  options_text='Zaznacz dodatkowe opcje z poniższej listy'
	  scale_text='Wybierz opcje z poniższej listy'
	  compres_text='Wybierz opcje z poniższej listy'
	  send_file_text='Podaj miejsce, w które przesłać archiwum'
	  quality_text='Ustaw jakość obrazu'
	  dir_text='Nazwa Albumu?'
	  window_progress='Postęp konwersji'
	  place_of_destination_column="Miejsce docelowe"
	  compres_to='Do:'
	  compres_from='#Konwersja Z:'
	  warning_text='Do działania skryptu niezbędny jest program \"Convert\!\"\n\nMożna go zainstalować wpisując w terminalu:\n sudo apt-get install imagemagick\n\nKończe\!\!\!'
	  error_dir="Nie można utworzyć katalogu"
	  error_dir2="Proszę użyć innej nazwy, ponieważ katalog o takiej nazwie już istnieje."
	  error_send="Nie można przesłać"
	  error_send2="nie istnieje lub podano błędną scieżkę!"
	;;

	*)
	  scripts_name='Image converter'
	  choice_column='Choice'
	  more_options_column='More option'
	  scale_column='Available resolution'
	  compres_text_column='Compression format'
	  compres_text_column2='Supports'
	  new_file_name_text='Save as?'
	  options_rename='Rename...'
	  options_compress_files='Compress files (.zip. tar.gz)'
	  options_send_file_to='Send compressed to...'
	  send_file_desktop='Desktop'
	  send_file_dropbox='Public Directory (Dropbox)'
	  send_file_alternative='Other'
	  options_text='Selected additional options from the list below'
	  scale_text='Select option from the list'
	  compres_text='Select option from the list'
	  send_file_text='Enter the location to send the archive'
	  quality_text='Set Image quality'
	  dir_text='Album name?'
	  window_progress='Conversion progress'
	  place_of_destination_column="Destination"
	  compres_to='To:'
	  compres_from='#From:'
	  warning_text='That script needed a program to work \"Convert\!\"\n\nYou can install it enter to the terminal:\n sudo apt-get install imagemagick\n\nI need stop\!\!\!'
	  error_dir="You can't create directory"
	  error_dir2="This name is already used in this directory.\n\nPlease use a different name."
	  error_send="I can't send"
	  error_send2="does not exist or the path is incorrect!"
	;;

esac

#
[ `which convert` ] \
  || { zenity --warning --title="$scripts_name" --text="$warning_text"; exit 1; }

#Dodatkowe opcje do wyboru
OPTIONS=$( zenity --title="$scripts_name" --text="$options_text" --list --checklist --column="$choice_column" --column="$more_options_column" \
	FALSE "$options_rename" \
	FALSE "$options_compress_files" \
	FALSE "$options_send_file_to" )
	  [ "$?" = 1 ] && exit 1

#Rozdzielczość konwertowanych zdjęć
SCALE=$( zenity --title="$scripts_name" --text="$scale_text" --list --radiolist --column="$choice_column" --column="$scale_column" \
	TRUE '1024x768' \
	FALSE '1152x864' \
	FALSE '1280x960' \
	FALSE '1280x1024' \
	FALSE '1360x768' \
	FALSE '1400x1058' \
	FALSE '1400x900' \
	FALSE '1600x1024' \
	FALSE '1600x1200' )
	  [ "$?" = 1 ] && exit 1

#Jakość konwertowanych zdjęć
QUALITY=$( zenity --scale --title="$scripts_name" --text="$quality_text" --min-value=1 --max-value=100 --value=85 )
	  [ "$?" = 1 ] && exit 1

#Nazwa dla zdjęć 
echo "$OPTIONS" | grep -q "$options_rename" \
	&& { NEW_FILE_NAME=$( zenity --entry --title="$scripts_name" --text="$new_file_name_text" ); DIALOG_NAME="$?"; }
	  [ "$DIALOG_NAME" = 1 ] && exit 1

#Nazwa Albumu
DIR=$( zenity --entry  --title="$scripts_name" --text="$dir_text" ) ; DIALOG_DIR="$?"


  [ "$DIALOG_DIR" = 0 ] && [ -z "$DIR" ] && DIR="Album-$(date +%d.%m.%Y_%X)"
  [ "$DIALOG_DIR" = 1 ] && exit 1
  [ ! -d "$DIR" ] \
	&& mkdir -p "$DIR" \
	|| { zenity --error --title="$scripts_name" --text="$error_dir '${DIR}'.\n$error_dir2"; exit 1; }

#Wyślij plik do
echo "$OPTIONS" | grep -q "$options_send_file_to" \
	&& { SEND_FILE=$( zenity --width=300 --height=215 --title="$scripts_name" --text="$send_file_text" --list --radiolist --column="$choice_column" --column=?"$place_of_destination_column" \
	TRUE "$send_file_desktop" \
	FALSE "$send_file_dropbox" \
	FALSE "$send_file_alternative" ); \
	DIALOG_SEND="$?"; }
	  [ "$DIALOG_SEND" = 1 ] && exit 1

	[ "$SEND_FILE" = "$send_file_alternative" ] \
	&& { SEND_FILE_OTHER=$( zenity --entry --title="$scripts_name" --text="$send_file_text" --entry-text="$HOME" ); DIALOG_SEND="$?"; }
	  [ "$DIALOG_SEND" = 1 ] && exit 1

#Kompresacja pliku
echo "$OPTIONS" | grep -q "$options_compress_files" \
	&& { COMPRES=$( zenity --width=300 --height=215 --title="$scripts_name" --text="$compres_text" --list --radiolist --column="$choice_column" --column="$compres_text_column" --column="$compres_text_column2" \
	FALSE '.zip' 'Windows' \
	FALSE '.tar.gz' 'GNU/Linux' ); \
	 DIALOG_COMPRES="$?"; }
	  [ "$DIALOG_COMPRES" = 1 ] && exit 1

#Okno z postępem
NUMBER_OF_FILES=`file -b "$@" | grep -c ?*P.G` #Zliczenie tylko plików JPEG i PNG w zmiennej $@
INCREMENT=$( echo "scale=3 ; (100/$NUMBER_OF_FILES)" | bc ) #Przyrost dla paska postępu
PROGRESS=0
NUMBER_OF_NEW_FILES=1 #numer nowej nazwy dla pliku
#End=========================================

(for FILE in "$@"
do
  
 file -b "$FILE" | grep -q ?*P.G \
  && { echo "$compres_from  $FILE  $compres_to"  "${NEW_FILE_NAME} ""${NUMBER_OF_NEW_FILES}.jpg (${NUMBER_OF_FILES})";
   convert "$FILE" -resize "$SCALE" -quality "$QUALITY" "$DIR"/"${NEW_FILE_NAME} ""${NUMBER_OF_NEW_FILES}.jpg";

   PROGRESS=$( echo "scale=3 ; ($PROGRESS+$INCREMENT)" | bc );
   NUMBER_OF_NEW_FILES=$[NUMBER_OF_NEW_FILES + 1];
	
	echo "$PROGRESS"; }

done
) | zenity --width=250 --height=100 --title="$window_progress" --progress --auto-close

#Kompresacja zdjęć

[ "$COMPRES" = '.zip' ] \
  && zip -r "${DIR}.zip" "$DIR"

[ "$COMPRES" = '.tar.gz' ] \
  && tar cf "${DIR}.tar" "$DIR" && gzip "${DIR}.tar"

#
. $HOME/.config/user-dirs.dirs 2> /dev/null

#Wyślij do

[ "$SEND_FILE" = "$send_file_desktop" ] \
  && mv "$DIR$COMPRES" "$XDG_DESKTOP_DIR" | zenity --progress --pulsate --auto-close

[ "$SEND_FILE" = "$send_file_dropbox" ] && [ -d "$HOME/Dropbox" ] \
  && mv "$DIR$COMPRES" "$HOME/Dropbox/Public" | zenity --progress --pulsate --auto-close

[ "$SEND_FILE" = "$send_file_alternative" ] && [ -d "$SEND_FILE_OTHER" ] \
  && mv "$DIR$COMPRES" "$SEND_FILE_OTHER" | zenity --progress --pulsate --auto-close

[ "$SEND_FILE" = "$send_file_alternative" ] && [ ! -d "$SEND_FILE_OTHER" ] \
  && { zenity --error --title="$scripts_name" --text="$error_send '${SEND_FILE}'.\n'$SEND_FILE_OTHER' $error_send2"; exit 1; }
Zasada działania po małych zmianach- wersja: 0.1.1
  • Skrypt zakończy działanie gdy wciśnięty zostanie przycisk anuluj.
  • Skrypt zakończy działanie jeśli wykryje, że katalog "Nowy Album" istnieje.
  • Jeżeli wciśnięty zostanie przycisk ok, a pole będzie puste, to skrypt automatycznie stworzy katalog "Album-data_godzina"
  • Zdjęcia są numerowane od 1...n
Update 16.02.2010- wersja: 0.2
  • Dodałem dodatkowe opcje tj:
    - zmień nazwę pliku jpg/png (do zdjęć dopisana jest numer od 1 w górę)
    - skompresuj pliki do .zip albo .tar.gz
    - wyślij skompresowane do: Pulpit, Katalog Public (Dropbox) albo własna ścieżka.
  • Konfiguracja odbywa się przed kompresją, więc przy dużej ilości plików i opcji "wyślij do Public (Dropbox), skrypt zrobi wszystko automatycznie.
Update 18.02.2010- wersja: 0.3
  • Dodałem zabezpieczenia tj. jeśli przypadkowo zaznaczymy pliki inne niż PNG, JPEG (nawet katalogi), to skrypt je pominie.
  • Celowo wprowadziłem wiele ułatwień takich jak:
    - pominięcie kompresji (.zip .tar) jeśli nie wybierzemy dostępnego formatu mimo, że wcześniej zaznaczyliśmy opcje "Skompresuj pliki.
    - przy wyborze innej ścieżki dla opcji "Wyślij skompresowane do..." automatycznie jest podstawiana ścieżka /home/user.
  • Komentarze w oknie dialogowy "Skompresuje pliki...": .zip- Obsługuje Windows, .tar.gz- Obsługuje GNU/Linux.
  • Poprawiłem zliczanie plików na podstawie typu pliku, a nie często mylnej nazwy lub braku rozszerzenia .jpg .png
  • No i porządki w kodzie.
  • Do zrobienia
  • W skrypcie znajduje się błąd, który nie pozwala na stworzenie archiwum tar.gz, przez znak ":" w nazwie.
Update 25.02.2010- Małe poprawki (lepiej file używac razem z opcją -b) i koniec :)
Więcej o mnie znajdziesz na: http://ospulse.pl
verdorben
Wytworny Kaczor
Wytworny Kaczor
Posty: 466
Rejestracja: 30 mar 2009, 18:00
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: MATE
Architektura: ARM

Odp: Przydatne skrypty

Post autor: verdorben »

Dodałbym jeszcze do convert autoostrzenie w takiej postaci -unsharp 1x1+0.3
perl -e 'print $i=pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);'
Inny OS: PLD Linux
mattnick
Sędziwy Jeż
Sędziwy Jeż
Posty: 30
Rejestracja: 18 kwie 2007, 14:22
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Przydatne skrypty

Post autor: mattnick »

Do wywalania miniaturek, które potrafią się rozrastać do monstrualnych rozmiarów

Kod: Zaznacz cały

#!/bin/sh 
find /home/USERNAME/.thumbnails -name "*.png" | xargs rm -f
Ubuntu - całe życie...:)
The Ubuntu Counter Project - user number # 18707
Awatar użytkownika
urbinek
Sędziwy Jeż
Sędziwy Jeż
Posty: 44
Rejestracja: 03 wrz 2007, 11:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Kontakt:

Odp: Przydatne skrypty

Post autor: urbinek »

mattnick
IHMO:

Kod: Zaznacz cały

rm -f ~/.thumbnails/*/*.png
będzie lepsze + można z tego zrobić alias i śmiga :D
ciasteczko =D
mattnick
Sędziwy Jeż
Sędziwy Jeż
Posty: 30
Rejestracja: 18 kwie 2007, 14:22
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Przydatne skrypty

Post autor: mattnick »

alias ?
Ubuntu - całe życie...:)
The Ubuntu Counter Project - user number # 18707
Awatar użytkownika
urbinek
Sędziwy Jeż
Sędziwy Jeż
Posty: 44
Rejestracja: 03 wrz 2007, 11:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Kontakt:

Odp: Przydatne skrypty

Post autor: urbinek »

[offtop]
http://pl.wikipedia.org/wiki/Alias_(Unix)

a tak w skrócie, na końcu pliku ~/.bashrc dodajesz

Kod: Zaznacz cały

alias usun_thumbsy='rm -f ~/.thumbnails/*/*.png'
przeładowujesz konsole i poleceniem usun_thumbsy wywalasz wszystkie obrazki
[/offtop]
ciasteczko =D
sasza.blo
Piegowaty Guziec
Piegowaty Guziec
Posty: 13
Rejestracja: 21 lut 2010, 04:46
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: KDE Plasma
Architektura: x86_64

Odp: Przydatne skrypty

Post autor: sasza.blo »

Radyjko_babuni dla miłośników kde.

Napisałem je dlatego, że bash + mplayer jest znacznie szybszy niż odpalanie i klikanie
w amaroku, żeby posłuchać sobie radia.

Edit: Skrypcioch w działaniu wygląda prawie identycznie jak RadioTray polecany przez Lukasa w poście poniżej (b. sympatyczny program, ktorego nie znalem). Różnicą jest ikonka konsoli w tray (można sobie zmienić na swoją), użycie mplayera, zamiast gstreamera, oraz to, że skrypciocha w bashu zmienie sobie sam, a na pytonga za cienki w uszach jestem :D

Odtwarza radia internetowe przy użyciu mplayera.
Do komunikacji wykorzystuje kdialog, więc jest przyjemny wizualnie i prosty w użyciu.
Uruchamia się jak każdy inny, czyli po zapisaniu jako radyjko_babuni i nadaniu praw do wykonania klika się się mychą, i gra.
Po wybraniu stacji skrypcioch automatycznie chowa się do traya (czarna ikonka konsole), skąd może być sterowany prawym przyciskiem mychy (info o odtwarzanej stacji, wybór innej, zakończenie programu). Dlatego też oprócz wymaga zainstalowanego pakietu alltray (150 kb).

Radyjek jest tylko pięć: wybrałem sobie te, których ja słucham, ale myślę, że
z dodaniem swoich nie powinniście mieć problemu.

A oto i łon:

Kod: Zaznacz cały

#!/bin/bash
################################### Radyjko Babuni ########################################
## czyli okienka kde + skrypty zerżnięte z forum.ubuntu.pl				 ##
##											 ##
## wymaga zainstalowanego allltray							 ##
## w linii 39 zamiast $HOME/radyjko_babuni.sh podaj ściężkę do miejsca zapisania radyjka ##
##											 ##
## piknie napisany to na pewno nie jest, ale działa.					 ##	
## radyjek jest mało - tylko te, które lubię. 						 ##
## z dodaniem swoich nie powinieneś/powinnaś mieć problemu				 ##
## 											 ##
## będę wdzięczny jeśli ktoś zmusi alltraya do pokazywania dymka z nazwą odtwarzanej	 ##
## stacji po najechaniu myszą nad ikonkę w trayu (na razie, cham nie chce)		 ##
##											 ##
## złośliwe komentarze i spam mile widziane pod adresem:				 ##
## e-mail: sasza.blo [at] gmail.com							 ##
###########################################################################################

# higiena osobista
if [ `whoami` = root ]
  then xhost + ; dbus-launch kdialog --title "Puknij się!!!" --error "Jestem złośliwe bydlę, \n więc nie radzę uruchamiać mnie z prawami administratora!" ; exit
  else echo 1 > /dev/null
fi

# teraz się okaże, czy czytałeś komentarz :p
if [ -f /usr/bin/alltray ]
  then echo 1 |> /dev/null 2>/dev/null
  else kdialog --error "Żeby być super pięknym potrzebuję alltraya. \n Wygląda na to, że go nie zainstlowałeś. \n Zrób to proszę zanim kolejny raz\n zawrócisz mi głowę" ; exit
fi

## dziwny początek, co?
killall mplayer > /dev/null 2>/dev/null

stacja=`kdialog --title "Radyjko babuni" --menu "Wybierz stację" trojka "Trójka" euro "Polskie Radio Euro" maryja "Radio Maryja" zak "Studenckie Radio Żak" anty "Antyradio"`


case $stacja in
    "trojka") radyjko="mms://stream.polskieradio.pl/program3"; odtwarzam="Polskie Radio Program 3" ;;
    "euro") radyjko="mms://stream.polskieradio.pl/program4_wma10" ; odtwarzam="Polskie Radio Euro";;
    "zak") radyjko="http://wroclaw1-2.radio.pionier.net.pl:8000/pl/radiozak.ogg" ; odtwarzam="Studenckie Radio Żak" ;;#!/bin/bash
################################### Radyjko Babuni ########################################
## czyli okienka kde + skrypty zerżnięte z forum.ubuntu.pl				 ##
##											 ##
## wymaga zainstalowanego allltray							 ##
## w linii 39 zamiast $HOME/radyjko_babuni.sh podaj ściężkę do miejsca zapisania radyjka ##
##											 ##
## piknie napisany to na pewno nie jest, ale działa.					 ##	
## radyjek jest mało - tylko te, które lubię. 						 ##
## z dodaniem swoich nie powinieneś/powinnaś mieć problemu				 ##
## 											 ##
## będę wdzięczny jeśli ktoś zmusi alltraya do pokazywania dymka z nazwą odtwarzanej	 ##
## stacji po najechaniu myszą nad ikonkę w trayu (na razie, cham nie chce)		 ##
##											 ##
## złośliwe komentarze i spam mile widziane pod adresem:				 ##
## e-mail: sasza.blo [at] gmail.com							 ##
###########################################################################################

# higiena osobista
if [ `whoami` = root ]
  then xhost + ; dbus-launch kdialog --title "Puknij się!!!" --error "Jestem złośliwe bydlę, \n więc nie radzę uruchamiać mnie z prawami administratora!" ; exit
  else echo 1 > /dev/null
fi

# teraz się okaże, czy czytałeś komentarz :p
if [ -f /usr/bin/alltray ]
  then echo 1 |> /dev/null 2>/dev/null
  else kdialog --error "Żeby być super pięknym potrzebuję alltraya. \n Wygląda na to, że go nie zainstlowałeś. \n Zrób to proszę zanim kolejny raz\n zawrócisz mi głowę" ; exit
fi

## dziwny początek, co?
killall mplayer > /dev/null 2>/dev/null

stacja=`kdialog --title "Radyjko babuni" --menu "Wybierz stację" trojka "Trójka" euro "Polskie Radio Euro" maryja "Radio Maryja" zak "Studenckie Radio Żak" anty "Antyradio"`


case $stacja in
    "trojka") radyjko="mms://stream.polskieradio.pl/program3"; odtwarzam="Polskie Radio Program 3" ;;
    "euro") radyjko="mms://stream.polskieradio.pl/program4_wma10" ; odtwarzam="Polskie Radio Euro";;
    "zak") radyjko="http://wroclaw1-2.radio.pionier.net.pl:8000/pl/radiozak.ogg" ; odtwarzam="Studenckie Radio Żak" ;;
    "anty") radyjko="http://94.23.89.48:7000/listen.pls" ; odtwarzam="Antyradio";;
    "maryja") radyjko="mms://195.94.205.211/rm" ; odtwarzam="Radio Maryja" ;;
    *) kdialog --passivepopup  "Anulowano" 2 ; exit ;;
esac

function gram(){
alltray konsole -e mplayer $radyjko -m "Gra $odtwarzam: " -m "Zmień stację:$HOME/radyjko_babuni.sh"
}
gram > /dev/null &

kdialog --passivepopup "Łączę z $odtwarzam" 3[
    "anty") radyjko="http://94.23.89.48:7000/listen.pls" ; odtwarzam="Antyradio";;
    "maryja") radyjko="mms://195.94.205.211/rm" ; odtwarzam="Radio Maryja" ;;
    *) kdialog --passivepopup  "Anulowano" 2 ; exit ;;
esac

function gram(){
alltray konsole -e mplayer $radyjko -m "Gra $odtwarzam: " -m "Zmień stację:$HOME/radyjko_babuni.sh"
}
gram > /dev/null &

kdialog --passivepopup "Łączę z $odtwarzam" 3
Załączniki
radyjko_babuni.sh.zip
(1.37 KiB) Pobrany 227 razy
LukAs
Wytworny Kaczor
Wytworny Kaczor
Posty: 284
Rejestracja: 30 paź 2005, 21:56
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Odp: Przydatne skrypty

Post autor: LukAs »

Jest taki fajny, mały programik Radio Tray :)
Więcej o mnie znajdziesz na: http://ospulse.pl
jotka2
Piegowaty Guziec
Piegowaty Guziec
Posty: 3
Rejestracja: 09 sty 2010, 13:48
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: Brak
Architektura: x86

Odp: Przydatne skrypty

Post autor: jotka2 »

zamiast kate można dać nano.:-P
Awatar użytkownika
empitt
Przyjaciel
Przyjaciel
Posty: 465
Rejestracja: 16 lis 2007, 13:35
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Odp: Przydatne skrypty

Post autor: empitt »

Ubumatic - skrypt, który skonfiguruje Ubuntu do podstawowych czynności. Można pobrać w Czytelni - link. Również w Czytelni znajdują się skrypty dla dwóch poprzednich wydań (9.04 i 9.10).
Inny OS = Fedora
jam_86
Piegowaty Guziec
Piegowaty Guziec
Posty: 5
Rejestracja: 16 lut 2008, 14:31
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: KDE Plasma

Odp: Przydatne skrypty

Post autor: jam_86 »

Kubumatic - wersja ubumatica dostosowana do Kubuntu także w czytelni tutaj
ODPOWIEDZ

Wróć do „Instalacja, aktualizacja i konfiguracja Ubuntu”

Kto jest online

Użytkownicy przeglądający to forum: Bing [Bot] i 15 gości