[+] Bash - skrypt wspomagaj

Potrzebujesz pomocy z C, C++, perl, python, itp.
Awatar użytkownika
saturno
Junior Member
Posty: 744
Rejestracja: 08 lipca 2008, 20:04

[+] Bash - skrypt wspomagający anonimowe przeglądanie internetu w Operze

Post autor: saturno »

Witam.

Napisałem skrypt wspomagający anonimowe przeglądanie internetu w Operze.
Skrypt działa idealnie jednak chciałbym dołożyć jeszcze jeden element i nie wiem jak to ugryźć.

Opiszę najpierw działanie skryptu, a nuż komuś się przyda:
1. W katalogu domowym tworzę nowy katalog o nazwie: opera_tor
2. Ściągam z internetu spakowaną Operę i umieszczam ją w katalogu: opera_tor (nazwa obecnej wersji pliku to: opera-11.10-2092.i386.linux.tar.bz2).
3. Rozpakowuję plik: opera-11.10-2092.i386.linux.tar.bz2, a następnie zmieniam nazwę katalogu z rozpakowanymi plikami z: opera-11.10-2092.i386.linux na: opera-linux
4. Katalog: opera-linux pakuję do: opera-linux.tar.gz
5. Usuwam wszystko z katalogu: opera_tor pozostawiając tylko plik: opera-linux.tar.gz
6. W katalogu: opera_tor umieszczam następujący skrypt:

Kod: Zaznacz cały

#!/bin/sh
cd ~/opera_tor &&
tar -xf opera-linux.tar.gz &&
cd opera-linux/ &&
./opera &&
cd ~/opera_tor/ &&
rm -r -f opera-linux &&
rm -r -f ~/.macromedia/Flash_Player/#SharedObjects &&
rm -r -f ~/.macromedia/Flash_Player/macromedia.com/support/flashplayer/sys &&
rm -r -f ~/.java/deployment/cache &&
konqueror ~/opera_tor/
Skrypt musi być wykonywalny i ma nazywać się: opera_tor

Zasada działania w skrócie:
1. Po uruchomieniu skryptu (można dorobić aktywator) otwiera się okno z licencją Opery.
2. Po zatwierdzeniu otwiera się Opera i można już surfować.
3. Po zamknięciu okna Opery kasowany jest tymczasowy katalog z którego była ona uruchomiona, a następnie inne katalogi gdzie ewentualnie mogłyby się pojawić ślady surfowania.
4. Jeśli poprzednie elementy przebiegną pomyślnie otwiera się nowe okno Konquerora pokazujące zawartość katalogu: opera_tor gdzie nie powinno być już widać tymczasowego katalogu Opery (opera-linux).

Chodzi o to, ze pojawienie tego okna jest potwierdzeniem prawidłowego zamknięcia Opery, bo bardzo rzadko ale zdarzało się w poprzednich wersjach Opery, że pomimo pozornego zamknięcia programu pozostawał proces programu, a przez to czyszczenie nie było przeprowadzane.

Problem:
Niby wszystko działa idealnie, ale chciałbym uzyskać jeszcze jeden efekt, a mianowicie żeby to okno Konquerora które pojawia się po zamknięciu Opery samoczynnie się zamykało po określonym czasie, np. po 10 sekundach.
Chodzi oczywiście o zamknięcie tylko tego okna, a nie wszystkich otwartych okien Konquerora.

Ps.: Ta wersja Opery "ala portable" swoje ustawienia, profil i pamięć tymczasową trzyma tylko w tym tymczasowym katalogu (opera-linux) więc ustawienia Opery "fizycznie" zainstalowanej (.opera) nie są wcale ruszane, a przez to są bezpieczne.

Pozdrawiam
saturno
fabix
Posty: 61
Rejestracja: 26 sierpnia 2006, 13:31

Post autor: fabix »

Jeśli to jedyny proces konqueror, który jest aktualnie uruchomiony w systemie to sprawa jest prosta:

Kod: Zaznacz cały

#!/bin/bash
gedit &
sleep 10 && kill `pidof gedit`
Jeśli więcej procesów konqueror to trzeba wydobyć numer procesu, który jest otwierany w skrypcie.
Całość tego co potrzebujesz może wyglądać tak

Kod: Zaznacz cały

gedit &
sleep 5
kill -9 $!
Zamienić gedit na konqueror.
Awatar użytkownika
saturno
Junior Member
Posty: 744
Rejestracja: 08 lipca 2008, 20:04

Post autor: saturno »

Jeśli chodziłoby o jeden proces konquerora, to można byłoby również użyć: killall nazwa_procesu.

Nie mniej jednak drugie rozwiązanie (z wieloma procesami) okazało się przydatne choć nie od razu chciało działać.
Okazało się że trzeba było usunąć znaki: && z końca linii odpowiedzialnej za czyszczenie cache javy.
Skrypt w ostatecznej formie wygląda następująco:

Kod: Zaznacz cały

#!/bin/sh
cd ~/opera_tor &&
tar -xf opera-linux.tar.gz &&
cd opera-linux/ &&
./opera &&
cd ~/opera_tor/ &&
rm -r -f opera-linux &&
rm -r -f ~/.macromedia/Flash_Player/#SharedObjects &&
rm -r -f ~/.macromedia/Flash_Player/macromedia.com/support/flashplayer/sys &&
rm -r -f ~/.java/deployment/cache
konqueror ~/opera_tor/ &
sleep 10
kill -9 $!
Dziękuję serdecznie za pomoc i pozdrawiam
saturno

Dodane:
Wpadłem na pomysł żeby rozszerzyć funkcjonalność skryptu o czyszczenie także przed uruchomieniem Opery.
Zawartość rozszerzonego skryptu przedstawia się teraz następująco:

Kod: Zaznacz cały

#!/bin/sh
rm -r -f ~/.macromedia/Flash_Player/#SharedObjects &&
rm -r -f ~/.macromedia/Flash_Player/macromedia.com/support/flashplayer/sys &&
rm -r -f ~/.java/deployment/cache &&
cd ~/opera_tor &&
tar -xf opera-linux.tar.gz &&
cd opera-linux/ &&
./opera &&
cd ~/opera_tor/ &&
rm -r -f opera-linux &&
rm -r -f ~/.macromedia/Flash_Player/#SharedObjects &&
rm -r -f ~/.macromedia/Flash_Player/macromedia.com/support/flashplayer/sys &&
rm -r -f ~/.java/deployment/cache
konqueror ~/opera_tor/ &
sleep 10
kill -9 $! 
Jeszcze raz pozdrawiam

Dodane 2:
Wymyśliłem, że zamiast pojawiającego się okna Konquerora można użyć programu: espeak do słownego poinformowania o pomyślnym zamknięciu programu.
Nowy skrypt wygląda następująco:

Kod: Zaznacz cały

#!/bin/sh
rm -r -f ~/.macromedia/Flash_Player/#SharedObjects &&
rm -r -f ~/.macromedia/Flash_Player/macromedia.com/support/flashplayer/sys &&
rm -r -f ~/.java/deployment/cache &&
cd ~/opera_tor &&
tar -xf opera-linux.tar.gz &&
cd opera-linux/ &&
./opera &&
cd ~/opera_tor/ &&
rm -r -f opera-linux &&
rm -r -f ~/.macromedia/Flash_Player/#SharedObjects &&
rm -r -f ~/.macromedia/Flash_Player/macromedia.com/support/flashplayer/sys &&
rm -r -f ~/.java/deployment/cache &&
espeak -v pl 'opera została prawidłowo zamknięta a dane prywatne zostały wyczyszczone'
Po pomyślnym zamknięciu Opery z głośnika wydobędą się następujące słowa:
opera została prawidłowo zamknięta a dane prywatne zostały wyczyszczone
ODPOWIEDZ