Archiwum tagu ‘linux’

1234567890 HAPPY UNIX NEW YEAR!

The D-DAY

Dzisiaj wybija okrągła rocznica. Nie wiedziałeś? W radiu nie mówili? Nic dziwnego. Ten dzień jest szczególny  jedynie dla tzw ‘pryszczatych linuksiarzy’, geeków i innych stworów z głębin internetu głęboko fascynujących się komputerami. Dziś 14 lutego 2009 o 00:31:30 CET wybił okrągły numer tzw unix timestamp 1234567890, czyli licznika, od którego mierzą wszystkie linuksowe zegarki, a którego punkt zero to data 01.01.1970.

Odwiedziłem kanał irc ##1234567890 w sieci freenode tuż przed wybiciem tej pamiętnej chwili.

Na 30 minut przed, na kanale było ok 700 osób, z każdą minutą jednak przybywało nowych ludzi pragnących celebrować ten dzień na swój sposób. Jak wiadomo ~1000 (już 15 min po północy ) osób ciężko pogodzić na jednym kanale i szybko konwersacja przypominała jeden wielki zrzut pamięci złożony z losowych wzorków, literek i cyfer.

xckd

xckd

Rozpoczęło się ciepło i przytulnie:

23:43:34  * ThomasEgi offers chokolate cookies.. anyone?
23:44:48 < SzArAk> CHLOPAKI, PIJEMY?!

Czytaj dalej »

Badanie: adres zewnętrzny w sieci tor – Bash + SQL

Ostatnimi czasy chciałem potrenować sobie programowanie w shellu i połączyć je z kwerendami w języku SQL. Po paru godzinach przygotowań postawiłem sobie cel (aby nie programować bezcelowo, czego nienawidzę):

Napisać aplikację, która będzie badać i zapisywać adresy zewnętrzne używane po wyjściu z sieci Tor.

Przygotowanie:

Pakiety do zainstalowania: mysql-server, tor, curl.

Implementacja:

Najpierw zebrałem informacje odnośnie kluczowych poleceń:

  • echo “{KWERENDA}” | mysql ${baza} –user {uzytkownik} –password={haslo} – kwerendy SQL w bashu,
  • date +%Y%m%d%H%M%S,
  • curl http://checkip.dyndns.com/ -s -p –socks5 localhost:9050 – pozyskiwanie zew. adresu IP,
  • http://api.hostip.info/get_html.php?ip=${adres_ip}pozyskiwanie danych o położeniu adresu,
  • INET_ATON(‘{adres_ip}) oraz INET_NTOA({pole_adresu_w_bazie}) - konwersja adresu do liczby ( obliczeniowo-wydajniejsze przechowywanie w bazie).

Po godzince skrypcik był gotowy i po następnej – wstępnie przetestowany:

#!/bin/bash
#Skrypt sprawdza adres zewnętrzny po przepuszczeniu polaczenia przez siec TOR
#nastepnie zapisuje go do bazy danych (mySQL)
#spassite.wordpress.com
baza=”"
pass=”"
user=”"
OKRES=”15s”

#nie edytować poniżej tej linijki
OSTATNI=”";
while [ 1 ]; do
AKTUALNY=`curl http://checkip.dyndns.com/ -s -p –socks5 localhost:9050 | grep -o -E ‘[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+’`;
clear;
if [ "$AKTUALNY" != "$OSTATNI" ]; then
if [ -n "$AKTUALNY" ]; then
ISTNIEJE=`echo “SELECT count(adres) FROM adresy WHERE adres=INET_ATON(‘${AKTUALNY}’);” | mysql ${baza} –user ${user} –password=${pass} | grep -E ‘[0-1]+’`;

OSTATNI=$AKTUALNY;
if [ $ISTNIEJE == 0 ]; then
CZAS=`date +%Y%m%d%H%M%S`;
LINK=”http://api.hostip.info/get_html.php?ip=${AKTUALNY}”
TMP=`curl -s ${LINK}`;
MIASTO=`echo $TMP | cut -d “:” -f 3 | tr -d ‘,. )(‘`;
KRAJ=`echo $TMP | cut -d “:” -f 2 | cut -d “(” -f 1 | tr -d ‘, .()’`;
echo “$CZAS $KRAJ “XXX” $MIASTO “XXX” $AKTUALNY “XXX” $OSTATNI”;
kwerenda=”INSERT INTO adresy(adres,data,kraj,miasto) VALUES INET_ATON(‘${AKTUALNY}’),NOW(),\”${KRAJ}\”,\”${MIASTO}\”);”;

echo “Wykonuje kwerende: $kwerenda”;
echo “———-BLEDY?———–”;
echo “$kwerenda” | mysql ${baza} –user ${user} –password=${pass}
echo “———/BLEDY?———–”
else
echo “Adres juz istnieje w bazie”;
sleep $OKRES;
fi
fi
else
#akcje gdy taki sam
echo “Adres juz istnieje w bazie”;
sleep $OKRES;
fi
done

Skrypt w akcji

Skrypt w akcji

Do zrobienia (przy odrobinie czasu i chęci):

  • wyświetlanie tabeli (narazie wywołuję ręcznie poprzez: watch ‘echo “select INET_NTOA(adres),data,kraj,miasto FROM adresy ORDER BY data DESC LIMIT 20;” | mysql zzz -u zzzz –password=zzzzzzz’ ),
  • gromadzenie wiekszej ilości danych z WHOIS i magazynowanie w bazie,
  • strona php z geolokalizacją.

Podsumowanie:

Skrypt spełnia swoje zadanie choć można go dopracować. Mam nadzieję, że komuś się przyda on sam, bądź jego część. Jak narazie rezultat sieci Tor to zmieniony adres co 10minut.

Banshee 1.0 wydane !

Na stronie projektu ukazała się informacja o wydaniu finalnej wersji odtwarzacza muzyki Banshee.

Część wprowadzonych zmian:

  • kolejka odtwarzania,
  • automatyczne pobieranie okładek,
  • nowa organizacja menu oraz interfejsu,
  • zintegrowany odtwarzacz oraz możliwość katalogowania video,
  • poprawa wydajności oraz czasu uruchamiania,
  • integracja z lastfm.

Irytujące rzeczy dalej występujące:

Mimo usuniecia części bugów, gdy program odmawiał posłuszeństwa i jedynym rozkazem, który respektował był “KILL!”, program dalej nie śledzi katalogu mediów i gdy przeniesiemy część utworów baza sama się nie zaktualizuje. Nadal pojawia się x przy utworze, lecz dalej nie wiadomo co z tym fantem zrobić poza importowaniem utworów ponownie o_O.

Nic… zabieram się do dalszego testowania

Instalacja banshee :

Ubuntu Hardy:

do /etc/apt/sources.list dopisać:

deb http://ppa.launchpad.net/banshee-team/ubuntu hardy main
deb-src http://ppa.launchpad.net/banshee-team/ubuntu hardy main

potem

sudo aptitude update
sudo aptitude install banshee-1

Źródło: http://banshee-project.org/download/

NapiProject (linux) – skrypt rekurencyjny

Linux inside ;)

Motywacja

Alternatywą dla znanego wszystkim programu NapiProject pod linuksa (poza odpalaniem Napi przez Wine) jest programik napisany w pythonie autorstwa panów(tak mniemam): gim,krzynio,dosiu,hash.
Programik mimo, iż działa wzorowo nie ma opcji przeszukiwania rekurencyjnego katalogów, czyli w uproszczeniu: podaj_katalog -> znajdź_filmy -> znajdź_do_nich_napisy. W takim właśnie uproszczeniu i bez fajerwerków (sprawdzania np. czy katalog istnieje etc) działa poniższy skrypcik.

Skrypt wygląda następująco:

#!/bin/bash
#—————————————#
#skrypt by spas (spassite.wordpress.com)#
#—————————————#
dir=”/katalog/z/filmami/”
ext=”.avi”; #rozszerzenie do wyszukania
find $dir -name “*.avi” | while read file
do
name=`echo $file | sed ’s/.avi//’`; #utnij rozszerzenie
file=`echo $file | sed ’s/ /\ /’`;
if [ ! -e "${name}.txt" ]; then #czy napis jeszcze niepobrany?
echo “${name}.avi”
./napi.py “$file”; #wywolaj skrypt dla filmów bez napisów
fi
done

Aby uruchomić skrypt:

chmod +x plik_z_powyższym_skryptem.sh
./plik_z_powyższym_skryptem.sh

Do jego działania niezbędny jest napi.py w tym samym katalogu co skrypt, oraz paczka “p7zip-full” (sudo aptitude install p7zip-full), bez której napi.py nie będzie poprawnie pobierać napisów.

Lista życzeń (czyt. co zrobię jak będę miał chwilkę):

  • sprawdzanie, czy katalog istnieje
  • ścieżka do katalogu odczytywana ze zmiennych wywołania
  • obsługa wielu rozszerzeń

Pliki do pobrania:

napi.py – program ściągający napisy do pobrania

Następna strona »