venerdì, febbraio 20, 2009

Network Simulator 2 (Ns2) - aggiornamento alla versione 2.33

Prima di descrivere la procedura di installazione della nuova versione di ubuntu, volevo indicarvi un programmino interessante scritto da Fedele Mantuano. In particolare il programmino si chiama Nscript ed è un semplice tool progettato per creare in modo del tutto grafico script OTcl per ns.
Per maggiori informazioni visitate il seguente link: http://fedelemantuano.blogspot.com/search/label/Manuale%20Nscript

Torniamo a noi, ultimamente è uscita la nuova versione del simulatore ns2 (ns2.33). Quindi modifico la guida al fine che permetta l'installazione su Ubuntu. Io personalmente l'ho testata su Ubuntu 8.10.
Questa guida contiene la procedura di installazione della versione stabile più recente dell'applicazione, la 2.33, 31 Marzo 2008.
Rispetto alla vecchie guide di installazione, vi è stata una modifica dei requisiti al fine di utilizzare i pacchetti più aggiornati presenti sui repository. Questa modifica comporta dei cambiamenti alle variabili d'ambiente.

Requisiti

Di seguito sono elencati i pacchetti necessari alla compilazione dei sorgenti:


  • build-essential
  • make
  • tcl8.5-dev
  • tk8.5-dev

  • autoconf

  • automake

  • libxmu-dev


Per installare i pacchetti con apt-get, è sufficiente aprire una finestra di terminale e digitare:

sudo apt-get install build-essential make tcl8.5-dev tk8.5-dev autoconf automake libxmu-dev


Installazione


Download del pacchetto

Posizionari nella propria Home e creare al suo interno una cartella .ns2:


cd ~
mkdir .ns2
cd ~/.ns2

Una volta creata la directory, scaricare al suo interno l'archivio contenente i sorgenti da qui oppure lanciando il comando

wget http://dfn.dl.sourceforge.net/sourceforge/nsnam/ns-allinone-2.33.tar.gz


Compilazione

Estrarre il file ~ns-allinone-2.33.tar.gz:


cd ~/.ns2
tar xzfv ns-allinone-2.33.tar.gz

Ora si può procedere con la compilazione:

cd ns-allinone-2.33
./install





Il tempo necessario al completamento dell'opeazione dipende dalla propria configurazione hardware.


Una volta terminato il processo di compilazione, è possibile provare il corretto funzionamento dell'applicazione digitando il seguente comando:

cd ns-2.33/
./ns

Come output si dovrebbe ottenere:


%
L'applicazione è stata correttamente installata. 

È possibile lanciare l'eseguibile senza doversi ricordare il percorso completo. Per far ciò è sufficiente modificare il file .bashrc presente nella propria cartella Home con un qualsiasi editor di testo


gedit ~/.bashrc

Aggiungere le seguenti righe alla fine del file, sostituendo la dicitura UTENTE con il proprio nome utente:


# LD_LIBRARY_PATH
OTCL_LIB=/home/UTENTE/.ns2/ns-allinone-2.33/otcl-1.13
NS2_LIB=/home/UTENTE/.ns2/ns-allinone-2.33/lib
X11_LIB=/usr/X11R6/lib
USR_LOCAL_LIB=/usr/local/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OTCL_LIB:$NS2_LIB:$X11_LIB:$USR_LOCAL_LIB
# TCL_LIBRARY
TCL_LIB=/home/UTENTE/.ns2/ns-allinone-2.33/tcl8.4.18/library
USR_LIB=/usr/lib
export TCL_LIBRARY=$TCL_LIB:$USR_LIB
# PATH
XGRAPH=/home/UTENTE/.ns2/ns-allinone-2.33/bin:/home/UTENTE/.ns2/ns-allinone-2.33/tcl8.4.18/unix:/home/UTENTE/.ns2/ns-allinone-2.33/tk8.4.18/unix
NS=/home/UTENTE/.ns2/ns-allinone-2.33/ns-2.33/
NAM=/home/UTENTE/.ns2/ns-allinone-2.33/nam-1.13/
PATH=$PATH:$XGRAPH:$NS:$NAM



Per attivare le modifiche fatte al file .bashrc, si deve lanciare il seguente comando

source ~/.bashrc 


Avvio dell'applicazione

Per verificare il corretto funzionamento del simulatore di rete e dei suoi componenti, si possono scaricare alcuni esempi presenti sul sito ufficiale del progetto, per poi eseguirli con il programma appena installato:



cd ~
cd ns2-example
wget http://www.isi.edu/nsnam/ns/tutorial/examples/example2.tcl
ns example2.tcl

La schermata seguente è un esempio di output di simulazione, elaborato con nam :





Allo stesso modo, si può visualizzare un esempio elaborato con xgraph:


cd ~
cd ns2-example
wget http://www.isi.edu/nsnam/ns/tutorial/examples/example4.tcl
ns example4.tcl

La schermata seguente è un esempio di output di simulazione, elaborato con xgraph :





Eliminare i file utilizzati per l'installazione

Eseguire i seguenti comandi per eliminare i file utilizzati per l'installazione e non più utili:


cd ~
rm ~/.ns2/ns-allinone-2.33.tar.gz
rm -Rf ~/ns2-example

Ulteriori risorse





Continua a leggere!

lunedì, febbraio 04, 2008

OpenIMSCore: guida all'installazione e alla configurazione

Come si può notare, è da parecchio che non scrivo. Sarà il periodo di stage presso Accenture (Roma) e sarà il tempo impiegato allo scrivere la tesi, ma non riesco proprio ad investire tempo nel blog. Oggi vi scrivo e traduco una guida che sto utilizzando per installare e testare IMS.

Cosa è IMS?


L'architettura di rete IP Multimedia Subsystem (IMS) è divenuta standard grazie alla collaborazione di Telecoms & Internet converged Services & Protocols for Advanced Networks (TISPAN) e Il Third Generation Partnership Project (3GPP), commissioni istituite dall'organo di standardizzazione European Telecommunications Standards Institute (ETSI).
IMS (IP Multimedia Subsystem) svolge un ruolo importante offrendo dei servizi chiave come la Quality of Service (QoS), la sicurezza, la messaggistica istantanea (Instant Messaging), IP Television (IPTV), etc. sia in reti fisse che in reti mobili.
La struttura base di IMS che permette di supportare i servizi di IM e di chat è la seguente:
  • Home Subscriber Server (HSS)

  • Proxy - Call Session Control Function (P-CSCF)

  • Interrogating - Call Session Control Function (I-CSCF)

  • Serving - Call Session Control Function (S-CSCF)


Per maggiori informazioni, sull'architettura e sui componenti vi consiglio di dare una lettura a http://en.wikipedia.org/wiki/IP_Multimedia_Subsystem.



Cosa è OpenIMSCore?


OpenIMSCore è un progetto OpenSource (di Fraunhofer FOKUS, ente tedesco che focalizza la sua attenzione nella ricerca e sviluppo di nuove tecnologie) che ha prodotto l'omonimo software: tale software implementa le funzionalità delle 3 tipologie di CSCF e una versione approssimativa, ma comunque efficace, dell'HSS. Il progetto OpenIMSCore appartiente ad un progetto OpenSource OpenIMS Playground (gestito dallo stesso gruppo FOKUS) molto più esteso che cerca di implementare tutti i servizi definiti dallo standard IMS.

Per maggiori informazioni su OpenIMSCore e su OpenIMS Playground vi consiglio di visionare i seguenti siti:
http://www.openimscore.org/
http://www.fokus.fraunhofer.de/bereichsseiten/testbeds/ims_playground/index.php?lang=en

Guida d'installazione


La seguente guida d'installazione è stata testata su due versioni di Ubuntu: Ubuntu 7.04 Feisty Fawn e Ubuntu 7.10 Gutsy Gibbon. Inoltre, in questa guida, al fine di testare la corretta funzionalità del sistema proporrò l'installazione e la configurazione di un client SIP/IMS UctIMSClient (client sviluppato dall'Università di Cape Town in Sudafrica: http://uctimsclient.berlios.de/) che permette di capire se i messaggi SIP vengono elaborati correttamente dall'architettura. Se non si desidera utilizzare tale software si può utilizzare qualsiasi client SIP/IMS tra i quali sottolineo:

In questi casi, almeno in prima istanza non propongo ne una guida d'installazione ne una configurazione. Comunque per chi volesse provarli, tali software sono facili da configurare e le informazioni per configurarle possono essere facilmente ricavate dalle informazioni utilizzate per configurare UctIMSClient, il quale da un punto di vista didattico risulta essere il più completo.

Per chi volesse implementare un numero maggiore di servizi e componenti, l'Università di Cape Town ha creato il codice e la relativa guida per installarli. In particolare, i servizi prodotti e le relative guide d'installazione sono:
La mia guida sarà una fusione ed una integrazione con delle configurazioni personali che hanno permesso di far girare correttamente il software con semplicità. In particolare, le guide usate sono:
Come si può notare, la maggiorparte delle guide gira su Ubuntu e in molti casi su Ubuntu 7.10 Gutsy Gibbon.

OpenIMSCore: download del codice sorgente


Per scaricare il codice sorgente abbiamo bisogno del pacchetto subversion:

sudo apt-get install subversion

Creiamo le cartelle nel quali verrà posto il codice sorgente scaricato:

sudo mkdir /opt/OpenIMSCore/

Diamo i diritti all'utente con cui accediamo di solito di poter lavorare sulla cartella richiesta /opt/OpenIMSCore:
sudo chown -R username /opt/OpenIMSCore/

dove al posto di username inseriamo il nome utente dell'utente che siamo soliti utilizzare.
Adesso creiamo le due cartelle in cui viene posto il codice: in una verrà posto il codice che compilato produrrà le funzionalità degli CSCF e nell'altra verrà posto il codice che compilato produrrà le funzionalità di HSS.
cd /opt/OpenIMSCore
mkdir ser_ims
mkdir FHoSS

Scarichiamo adesso il codice:
svn checkout http://svn.berlios.de/svnroot/repos/openimscore/ser_ims/trunk ser_ims
svn checkout http://svn.berlios.de/svnroot/repos/openimscore/FHoSS/trunk FHoSS

In questo caso, si considera che il collegamento ad internet avvenga in maniera diretta. Se ci troviamo dietro ad un proxy dobbiamo configurare correttamente subversion.

OpenIMSCore: installazione dei pacchetti utili per la compilazione


Abbiamo bisogno di un certo numero di pacchetti per la compilazione. Per installarli lanciare da terminale il seguente comando:
sudo apt-get install sun-java6-jdk mysql-server libmysqlclient15-dev libxml2 libxml2-dev bind9 ant flex bison


OpenIMSCore: configurare le impostazioni del Server DHCP e del Server DNS


Siccome stiamo imponendo che il server DNS giri sulla nostra macchina, allora dobbiamo cancella il # e rende attiva l'opzione prepend domain-name-servers 127.0.0.1; nella file /etc/dhcp3/dhclient.conf. Ricordati di aprire il seguente file con i diritti di root.

Copiamo il file open-ims.dnszone nella cartella /etc/bind:
sudo cp /opt/OpenIMSCore/ser_ims/cfg/open-ims.dnszone /etc/bind/

Ricordo che bind è un server DNS OpenSource.
Aggiungiamo in coda al file /etc/bind/named.conf.local le seguenti righe:

zone "open-ims.test" {

type master;

file "/etc/bind/open-ims.dnszone";

};

Riavviamo il server DNS con il seguente comando:

sudo /etc/init.d/bind9 restart

Dobbiamo fare in modo che il server DNS possa essere contattato dal nostro PC: per questo motivo editiamo il file /etc/resolv.conf aggiungendo le seguenti righe:
search open-ims.test
nameserver 127.0.0.1

Verifichiamo che funzioni correttamente pingando pcscf.open-ims.test

ping pcscf.open-ims.test

Di regola, dovremmo ottenere risposta. Se il ping non va, riavviamo l'interfaccia di rete lo (localhost) o attiviamola, nel caso non sia stata attivata:

sudo /etc/init.d/networking restart

e rieseguiamo il ping attraverso il comando precedentemente descritto.
Questa è la fase più complessa di tutta l'installazione in quanto in molti casi il software non gira correttamente a causa dell'errata configurazione del server bind.

OpenIMSCore: configurare i database


Così come succede nell'architettura IMS, anche in OpenIMSCore viene implementato un database in MySql. Per questo motivo bisogna settarlo introducendo le informazioni sia riferite a I-CSCF che ad HSS.
Lanciamo i seguenti comandi:
cd /opt/OpenIMSCore
mysql -u root -p < ser_ims/cfg/icscf.sql
mysql -u root -p < FHoSS/scripts/hss_db.sql
mysql -u root -p < FHoSS/scripts/userdata.sql

Ci verrà chiesta una password che di default non viene settata in MySql: per questo motivo premiamo semplicemente Invio.

OpenIMSCore: Compilazione dei sorgenti


Compiliamo inizialmente i CSCF. Per farlo lanciamo i seguenti comandi:
cd /opt/OpenIMSCore/ser_ims/
sudo make install-libs all

La durata della compilazione varia in base alle caratteristiche della macchina in cui viene installato il software. In genere, la durata si aggira tra i 5-10 minuti.
Per compilare invece HSS (FHoSS nel OpenIMSCore) dobbiamo settare la variabile d'ambiente di JAVA attraverso il comando:
export JAVA_HOME="/usr/lib/jvm/java-1.6.0-sun"

Siccome tale variabile d'ambiente deve essere settata ogni qualvolta si lancia lo script relativo all'esecuzione di FHoSS, vi consiglio di modificare .bashrc presente nella propria home dell'utente:

gedit ~/.bashrc

Incolliamo alla fine la seguente stringa:
export JAVA_HOME="/usr/lib/jvm/java-1.6.0-sun"

salviamo e chiudiamo il file. Lanciamo:

source ~/.bashrc

per rendere effettive le modifiche alle variabili d'ambiente.
Compiliamo FHoSS attraverso i seguenti comandi
cd /opt/OpenIMSCore/FHoSS
ant compile deploy

Infine modifichiamo il file ZhDataType.xsd presente nella cartella /opt/OpenIMSCore/FHoSS/xsd/
gedit /opt/OpenIMSCore/FHoSS/xsd/ZhDataType.xsd

e sostituiamo la linea
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
con
schemaLocation="file:///opt/OpenIMSCore/FHoSS/xsd/xml.xsd"/>


OpenIMSCore: Esecuzione dei vari script


Per facilitare l'esecuzione copiamo tutti i file di configurazione di tutti CSCF e di FHoSS e i relativi script di esecuzione nella cartella /opt/OpenIMSCore/:
cp /opt/OpenIMSCore/ser_ims/cfg/* /opt/OpenIMSCore/

Infine lanciamo tutte le entità di OpenIMSCore. Vi consiglio di aprire una nuova scheda (Ctrl+Masc+T) ad ogni entità e di settare il titolo della scheda.
Per lanciarce P-CSCF
/opt/OpenIMSCore/pcscf.sh

Per lanciare I-CSCF
/opt/OpenIMSCore/icscf.sh

Per lanciare S-CSCF
/opt/OpenIMSCore/scscf.sh

Per lanciare FHoSS
/opt/OpenIMSCore/fhoss.sh


OpenIMSCore: testare OpenIMSCore e installare UctIMSClient


Per testare OpenIMSCore, bisogna installare UctIMSClient (nel mio caso). Se desiderate installare o utilizzare un altro software che supporta SIP così come spiegato nell'introduzione.

UctIMSClient: Download e installazione del pacchetto .deb


Nel caso il Sistema Operativo sul quale avete installato OpenIMSCore sia Ubuntu 7.04 Feisty Fawn, dovete scaricare la versione 1.07 di UctIMSClient
cd ~/Desktop
wget http://download.berlios.de/uctimsclient/uctimsclient1.0.7.deb

Nel caso il Sistema Operativo sul quale avete installato OpenIMSCore sia Ubuntu 7.10 Gutsy Gibbon, dovete scaricare la versione 1.09 (l'ultima) di UctIMSClient:
cd ~/Scrivania
wget http://download.berlios.de/uctimsclient/uctimsclient1.0.9.deb

Per l'installazione possiamo utilizzare o il doppio click o utilizzare il comando:
sudo dpkg -i uctimsclient1.0.*.deb

Durante l'installazione, vengono installati e configurati vari pacchetti scaricati dai repository ufficiali di Ubuntu.

UctIMSClient: configurazione


Bisogna inizialmente lanciare UctIMSClient, aprendo una nuova scheda e impostate il titolo Bob:
uctimsclient

Di regola, le impostazioni di default di UctIMSClient sono conformi alle informazioni contenute nel HSS e conformi alla topologia della rete. Nella figura sottostante viene presentata la configurazione dell'utente Bob che è già configurato nel database . Le stesse configurazioni a meno del Public User Identity, Private User Identity e della Password.


Comunque nel caso di Bob:
  • Public User Identity: sip:bob@open-ims.test
  • Private User Identity: bob@open-ims.test
  • Password: bob


Aprite inoltre un altra scheda con il titolo di Alice e lanciate un altro UctIMSClient:
uctimsclient


Nel caso di Alice:
  • Public User Identity: sip:alice@open-ims.test
  • Private User Identity: alice@open-ims.test
  • Password: alice

UctIMSClient: invio del messaggio register deregister e chiamata SIP


Per eseguire la register, bisogna semplicemente cliccare sul tasto Register as Alice nel caso del terminale di Alice, così come in figura sottostante; nel caso di Bob bisogna cliccare sul tasto Register as Bob nel caso del terminale di Bob.



Basta cliccare sul tasto Deregister nel UctIMSClient per eseguire la deregister dell'utente desiderato a cui appartiene il client UctIMSClient.
Consiglio inoltre attraverso di tasti di Call or Answer, ricordatoci di indicare correttamente l'indirizzo SIP al quale rivolgere la chiamata. Nel caso si utilizzi il terminale di Alice, l'indirizzo al quale rivolgere la chiamate è sip:bob@open-ims.test, cosi come nella figura sottostante.


OpenIMSCore: aggiungere nuovi utente e gestire HSS (opzionale)


Per aggiungere un nuovo utente e per gestire l'HSS, siamo facilitati dall'interfaccia grafica che viene chiamata attraverso un browser web.
Per farlo, aprite Firefox e scrivere dentro:
http://localhost:8080

Vi verranno chieste Username e Password ed inserite le seguenti info:
Username: hssAdmin
Password: hss

Ricordo che è case-sensitive.

OpenIMSCore: Customizzare la rete IMS


Potete cambiare il realm (nel caso delle impostazioni di default era open-ims.test) e l'indirizzo IP di tutta la rete (nel caso delle impostazioni di default era 127.0.0.1).
Gli sviluppatori hanno realizzato uno script di bash chiamato configurator.sh che permette di modificare i file di configurazione utili per una customizzazione della rete IMS su un unica macchina, cioè tutti gli script delle varie entità IMS devono essere lanciati dalla stessa macchina.

E' importante ricordare che questo script può essere usato solo una volta partendo da una installazione andata a buon fine: in pratica, se installate correttamente OpenIMSCore, potete usare configurator.sh; ma se modificate i file di configurazione manualmente o utilizzate configurator.sh dopo l'installazione di OpenIMSCore, non potete riusare lo script configurator.sh e siete costretti o a modificare configurator.sh al fine che rendi effettivi i nuovi cambi o dovete modificare manualmente i file di configurazione (operazione complessa per l'utente medio)

Lo script configurator.sh si trova, se avete seguito questa guida, in /opt/openIMSCore. Per customizzare la rete IMS, lanciare:

./configurator.sh pcscf.cfg icscf.cfg icscf.xml scscf.cfg scscf.xml ser_ims/cfg/icscf.sql FHoSS/deploy/DiameterPeerHSS.xml FHoSS/deploy/hss.properties FHoSS/scripts/hss_db.sql FHoSS/scripts/userdata.sql

Vi verranno chiesti, come già detto precedentemente, il realm e l'indirizzo IP.
Una volta fatto ciò, bisogna aggiornare il database utlizzando i seguenti comandi:
cd /opt/OpenIMSCore
mysql -u root -p < ser_ims/cfg/icscf.sql
mysql -u root -p < FHoSS/scripts/hss_db.sql
mysql -u root -p < FHoSS/scripts/userdata.sql

Se avete modificato il realm o l'IP, dovete rivedere le informazioni degli utenti e dei network setting presenti in HSS.
Infine, dovete riavviare le varie entità. In particolare, dovete bloccare i 3 cscf utilizzando Ctrl+C mentre dovete bloccare FHoSS scrivendo exit. Riattivate i servizi usando rispettivamente nelle 4 schede i comandi:
Per lanciarce P-CSCF
/opt/OpenIMSCore/pcscf.sh

Per lanciare I-CSCF
/opt/OpenIMSCore/icscf.sh

Per lanciare S-CSCF
/opt/OpenIMSCore/scscf.sh

Per lanciare FHoSS
/opt/OpenIMSCore/fhoss.sh


Riferimenti e supporto


Vi elenco i riferimenti a cui mi sono rifatto.



Per quanto riguarda il supporto, vi indico i possibili modi per avere assistenza:

Spero che la guida sia utile e comprensibile nonchè corretta. Questo progetto è veramente interessante e vi posso dire che sono riuscito ad installarlo su 4 macchine virtuali (che possono essere considerate 4 macchine reali), ognuna con un indirizzo IP diverso e su ognuna lanciavo una entità diversa. Il tutto, definito in un realm diverso da open-ims.test, funziona correttamente e successivamente proverò ad accedere alla rete IMS con i client SIP/IMS installato sui PC in rete con le macchine virtuali e con il client OpenIC installato su un palmare (se riesco a trovarlo).

Per piacere testatelo e fatemi sapere se ci sono errori nella guida o se commette errori nell'installazione o nella configurazione di OpenIMSCore. Quando diventerà stabile, penso che la farò rientrare nella documentazione di ubuntu-it.

Alla prossima.

Continua a leggere!

giovedì, novembre 01, 2007

Youtube-DL: interfaccia grafica - aggiornamento

Ho rivisto il programma e utilizzando i consigli dell'amico Fradeve ho apportato delle modifiche che posso riassumere in:
  • Possibilità di scegliere un minor numero di info durante l'utilizzo del programma. Se l'avete usato già una volta e non volete che ci siano alcune finestre create da zenity potere rispondere si alla domanda che vi viene posta durante l'esecuzione del programma;
  • Possibilità di convertire il file anche in formati liberi quali ogg.
La guida di installazione è identica a quella precedente, l'unica cosa che cambia è il contenuto dello script.

Chi deve semplicemente aggiornare il programma segue la Guida 1, mentre chi deve installarlo per la prima volta segue la Guida 2.



Guida 1


Installazione

Aprite il file che avete creato la volta scorsa per la prima installazione
 sudo gedit /usr/bin/youtube 

Logicamente se non usate gedit potete usare qualsiasi altro editor di testo (nano,vim,kwrite,kate,mousepad, etc.)
Cancellate completamente tutto il contenuto e copiateci dentro quello che segue:

#!/bin/bash
# Funzione che configura il terminale da usare
function config {
cd ~/Desktop
msg=`zenity --title="XBackup" --list --text="Ridurre le notifiche e i messaggi di informazioni?" --radiolist --column="Scegli" --column="Abilita" false "Si" false "No"`
if [[ $msg = "Si" ]];
then
msg=1;
elif [[ $msg = "No" ]];
then
msg=0;
else
zenity --error --title="XBackup - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi

de=`zenity --title="Youtube-DL" --text="Quale DE utilizzate tra questi sottostanti?" --list --radiolist --column="Scegli" --column="Desktop Environment" false "Gnome" false "Kde" false "Xfce"`
if [[ $de = "Gnome" ]]
then
if [[ $msg -eq 0 ]]
then
zenity --info --title="Youtube-DL - Informazioni" --text="Ambiente Grafico Gnome"
else
sleep 1;
fi
terminal="gnome-terminal -x"
elif [[ $de = "Kde" ]];
then
if [[ $msg -eq 0 ]]
then
zenity --info --title="Youtube-DL - Informazioni" --text="Ambiente Grafico Kde"
else
sleep 1;
fi
terminal="konsole -e"
elif [[ $de = "Xfce" ]];
then
if [[ $msg -eq 0 ]]
then
zenity --info --title="Youtube-DL - Informazioni" --text="Ambiente Grafico Xfce"
else
sleep 1;
fi
terminal="xfce-terminal -x"
else
zenity --error --title="Youtube-DL - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi
}

# Funzione che permette di convertire i file flv nei formati richiesti
function trasform {
formato=`zenity --width=300 --height=300 --title="Youtube-DL" --list --radiolist --text="In quale formato deve essere trasformato il tuo video?" --column="Scegli" --column="Formati" false "3gp" false "Wmv" false "Mpeg" false "Avi" false "Ogg"`
zenity --info ---title="Youtube-DL - Informazioni" --text="Adesso verrà aperto un terminale che serve al programma per trasformare il file nel formato desiderato"
if [[ $formato = "3gp" ]]
then
$terminal ffmpeg -i tmp_file.flv -s 176x144 -r 15.0 -b 80k -vcodec h263 -ar 8000 -ac 1 -acodec amr_nb -y ${video_name}.3gp
if [[ $msg -eq 0 ]]
then
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.3gp creato - Rilanciare il software per trasformarlo in un altro formato"
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
else
sleep 1;
fi
elif [[ $formato = "Wmv" ]];
then
if [[ $msg -eq 0 ]]
then
$terminal ffmpeg -i tmp_file.flv ${video_name}.wmv
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.wmv creato - Rilanciare il software per trasformarlo in un altro formato"
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
else
sleep 1;
fi
elif [[ $formato = "Avi" ]];
then
$terminal ffmpeg -i tmp_file.flv ${video_name}.avi
if [[ $msg -eq 0 ]]
then
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.avi creato - Rilanciare il software per trasformarlo in un altro formato"
$terminal zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
else
sleep 1;
fi
elif [[ $formato = "Mpeg" ]];
then
if [[ $msg -eq 0 ]]
then
ffmpeg -i tmp_file.flv ${video_name}.mpg
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.mpg creato - Rilanciare il software per trasformarlo in un altro formato"
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
else
sleep 1;
fi
elif [[ $formato = "Ogg" ]];
then
if [[ $msg -eq 0 ]]
then
ffmpeg -i tmp_file.flv ${video_name}.ogg
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.ogg creato - Rilanciare il software per trasformarlo in un altro formato"
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
else
sleep 1;
fi
else
zenity --error --width=300 --title="Youtube-DL - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi
}


# MENU PRINCIPALE e cuore del programma
zenity --info --width=300 --title="Youtube-DL" --text "Programma per scaricare i video da YouTube e trasformarli vari formati"
config
find tmp_file.flv
if [[ $? -eq 0 ]];
then
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text "File già scaricato "
video_name=`zenity --entry --title="Youtube-DL" --text "Inserisci il nome che vuoi dargli (senza estensione)"`
else

video_url=`zenity --entry --title="Youtube-DL" --text "Inserisci l'url del video da YouTube"`
video_name=`zenity --entry --title="Youtube-DL" --text "Inserisci il nome che vuoi dargli (senza estensione)"`
zenity --info ---title="Youtube-DL - Informazioni" --text="Adesso verrà aperto un terminale che serve al programma per scaricare il file nel formato flv"
$terminal youtube-dl -o tmp_file.flv $video_url
fi
trasform
rm tmp_file.flv



Guida 2


Requisiti


I requisiti sono i seguenti pacchetti scaricabili dai repo:

  • youtube-dl

  • ffmpeg

  • zenity


i quali possono essere installati lanciando il comando
 sudo apt-get install youtube-dl ffmpeg  zenity 


Installazione


Anche in questo caso l'installazione si poggia con la creazione di un file o script di bash. In particolare creare un file dal nome youtube con il comando
 sudo gedit /usr/bin/youtube 

Logicamente se non usate gedit potete usare qualsiasi altro editor di testo (nano,vim,kwrite,kate,mousepad, etc.)
All'interno del file scriveteci dentro quello che segue:

#!/bin/bash
# Funzione che configura il terminale da usare
function config {
cd ~/Desktop
msg=`zenity --title="XBackup" --list --text="Ridurre le notifiche e i messaggi di informazioni?" --radiolist --column="Scegli" --column="Abilita" false "Si" false "No"`
if [[ $msg = "Si" ]];
then
msg=1;
elif [[ $msg = "No" ]];
then
msg=0;
else
zenity --error --title="XBackup - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi

de=`zenity --title="Youtube-DL" --text="Quale DE utilizzate tra questi sottostanti?" --list --radiolist --column="Scegli" --column="Desktop Environment" false "Gnome" false "Kde" false "Xfce"`
if [[ $de = "Gnome" ]]
then
if [[ $msg -eq 0 ]]
then
zenity --info --title="Youtube-DL - Informazioni" --text="Ambiente Grafico Gnome"
else
sleep 1;
fi
terminal="gnome-terminal -x"
elif [[ $de = "Kde" ]];
then
if [[ $msg -eq 0 ]]
then
zenity --info --title="Youtube-DL - Informazioni" --text="Ambiente Grafico Kde"
else
sleep 1;
fi
terminal="konsole -e"
elif [[ $de = "Xfce" ]];
then
if [[ $msg -eq 0 ]]
then
zenity --info --title="Youtube-DL - Informazioni" --text="Ambiente Grafico Xfce"
else
sleep 1;
fi
terminal="xfce-terminal -x"
else
zenity --error --title="Youtube-DL - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi
}

# Funzione che permette di convertire i file flv nei formati richiesti
function trasform {
formato=`zenity --width=300 --height=300 --title="Youtube-DL" --list --radiolist --text="In quale formato deve essere trasformato il tuo video?" --column="Scegli" --column="Formati" false "3gp" false "Wmv" false "Mpeg" false "Avi" false "Ogg"`
zenity --info ---title="Youtube-DL - Informazioni" --text="Adesso verrà aperto un terminale che serve al programma per trasformare il file nel formato desiderato"
if [[ $formato = "3gp" ]]
then
$terminal ffmpeg -i tmp_file.flv -s 176x144 -r 15.0 -b 80k -vcodec h263 -ar 8000 -ac 1 -acodec amr_nb -y ${video_name}.3gp
if [[ $msg -eq 0 ]]
then
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.3gp creato - Rilanciare il software per trasformarlo in un altro formato"
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
else
sleep 1;
fi
elif [[ $formato = "Wmv" ]];
then
if [[ $msg -eq 0 ]]
then
$terminal ffmpeg -i tmp_file.flv ${video_name}.wmv
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.wmv creato - Rilanciare il software per trasformarlo in un altro formato"
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
else
sleep 1;
fi
elif [[ $formato = "Avi" ]];
then
$terminal ffmpeg -i tmp_file.flv ${video_name}.avi
if [[ $msg -eq 0 ]]
then
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.avi creato - Rilanciare il software per trasformarlo in un altro formato"
$terminal zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
else
sleep 1;
fi
elif [[ $formato = "Mpeg" ]];
then
if [[ $msg -eq 0 ]]
then
ffmpeg -i tmp_file.flv ${video_name}.mpg
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.mpg creato - Rilanciare il software per trasformarlo in un altro formato"
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
else
sleep 1;
fi
elif [[ $formato = "Ogg" ]];
then
if [[ $msg -eq 0 ]]
then
ffmpeg -i tmp_file.flv ${video_name}.ogg
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.ogg creato - Rilanciare il software per trasformarlo in un altro formato"
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
else
sleep 1;
fi
else
zenity --error --width=300 --title="Youtube-DL - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi
}


# MENU PRINCIPALE e cuore del programma
zenity --info --width=300 --title="Youtube-DL" --text "Programma per scaricare i video da YouTube e trasformarli vari formati"
config
find tmp_file.flv
if [[ $? -eq 0 ]];
then
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text "File già scaricato "
video_name=`zenity --entry --title="Youtube-DL" --text "Inserisci il nome che vuoi dargli (senza estensione)"`
else

video_url=`zenity --entry --title="Youtube-DL" --text "Inserisci l'url del video da YouTube"`
video_name=`zenity --entry --title="Youtube-DL" --text "Inserisci il nome che vuoi dargli (senza estensione)"`
zenity --info ---title="Youtube-DL - Informazioni" --text="Adesso verrà aperto un terminale che serve al programma per scaricare il file nel formato flv"
$terminal youtube-dl -o tmp_file.flv $video_url
fi
trasform
rm tmp_file.flv





Salvate il file e chiudetelo. Una volta fatto ciò dategli i diritti di esecuzione lanciando il comando:
 sudo chmod a+x /usr/bin/youtube 

Ora il programma può essere lanciato dove volete. Se volete potete anche (così ho fatto io) crea una icona con Menu Principale.


Alla prossima!!!

Aspetto altri vostri consigli

Continua a leggere!

mercoledì, ottobre 17, 2007

Youtube-DL: interfaccia grafica

In questo periodo, ho creato un nuovo programma con zenity. L'ho fatto per una mia esigenza personale: scaricare i video da youtube e convertirli nel formato desiderato, nel mio caso avi e 3gp. Il risultato è stato Youtube-DL che fa uso di youtube-dl (permette di scaricare i video da youtube in formato flv), di zenity (permette di creare l'interfaccia grafica) e di ffmpeg (permette di convertire i file flv nei formati richiesti).
Vi ricordo che i file temporanei (che verranno cancellati alla conclusione dello script) e i file creati nel formato desiderato si troveranno nella home.



Requisiti


I requisiti sono i seguenti pacchetti scaricabili dai repo:

  • youtube-dl

  • ffmpeg

  • zenity


i quali possono essere installati lanciando il comando
 sudo apt-get install youtube-dl ffmpeg  zenity 


Installazione


Anche in questo caso l'installazione si poggia con la creazione di un file o script di bash. In particolare creare un file dal nome youtube con il comando
 sudo gedit /usr/bin/youtube 

Logicamente se non usate gedit potete usare qualsiasi altro editor di testo (nano,vim,kwrite,kate,mousepad, etc.)
All'interno del file scriveteci dentro quello che segue:

#!/bin/bash
# Funzione che configura il terminale da usare
function config {
cd ~/Desktop
de=`zenity --title="Youtube-DL" --text="Quale DE utilizzate tra questi sottostanti?" --list --radiolist --column="Scegli" --column="Desktop Environment" false "Gnome" false "Kde" false "Xfce"`
if [[ $de = "Gnome" ]]
then
zenity --info --title="Youtube-DL - Informazioni" --text="Ambiente Grafico Gnome"
terminal="gnome-terminal -x"
elif [[ $de = "Kde" ]];
then
zenity --info --title="Youtube-DL - Informazioni" --text="Ambiente Grafico Kde"
terminal="konsole -e"
elif [[ $de = "Xfce" ]];
then
zenity --info --title="Youtube-DL - Informazioni" --text="Ambiente Grafico Xfce"
terminal="xfce-terminal -x"
else
zenity --error --title="Youtube-DL - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi
}

# Funzione che permette di convertire i file flv nei formati richiesti
function trasform {
formato=`zenity --width=300 --height=300 --title="Youtube-DL" --list --radiolist --text="In quale formato deve essere trasformato il tuo video?" --column="Scegli" --column="Formati" false "3gp" false "Wmv" false "Mpeg" false "Avi"`
zenity --info ---title="Youtube-DL - Informazioni" --text="Adesso verrà aperto un terminale che serve al programma per trasformare il file nel formato desiderato"
if [[ $formato = "3gp" ]]
then
$terminal ffmpeg -i tmp_file.flv -s 176x144 -r 15.0 -b 80k -vcodec h263 -ar 8000 -ac 1 -acodec amr_nb -y ${video_name}.3gp
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.3gp creato - Rilanciare il software per trasformarlo in un altro formato"
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
elif [[ $formato = "Wmv" ]];
then
$terminal ffmpeg -i tmp_file.flv ${video_name}.wmv
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.wmv creato - Rilanciare il software per trasformarlo in un altro formato"
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
elif [[ $formato = "Avi" ]];
then
$terminal ffmpeg -i tmp_file.flv ${video_name}.avi
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.avi creato - Rilanciare il software per trasformarlo in un altro formato"
$terminal zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
elif [[ $formato = "Mpeg" ]];
then
ffmpeg -i tmp_file.flv ${video_name}.mpg
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.mpg creato - Rilanciare il software per trasformarlo in un altro formato"
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
else
zenity --error --width=300 --title="Youtube-DL - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi
}


# MENU PRINCIPALE e cuore del programma
zenity --info --width=300 --title="Youtube-DL" --text "Programma per scaricare i video da YouTube e trasformarli vari formati"
config
find tmp_file.flv
if [[ $? -eq 0 ]];
then
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text "File già scaricato "
video_name=`zenity --entry --title="Youtube-DL" --text "Inserisci il nome che vuoi dargli (senza estensione)"`
else

video_url=`zenity --entry --title="Youtube-DL" --text "Inserisci l'url del video da YouTube"`
video_name=`zenity --entry --title="Youtube-DL" --text "Inserisci il nome che vuoi dargli (senza estensione)"`
zenity --info ---title="Youtube-DL - Informazioni" --text="Adesso verrà aperto un terminale che serve al programma per trasformare il file nel formato desiderato"
$terminal youtube-dl -o tmp_file.flv $video_url
fi
trasform
rm tmp_file.flv



Salvate il file e chiudetelo. Una volta fatto ciò dategli i diritti di esecuzione lanciando il comando:
 sudo chmod a+x /usr/bin/youtube 

Ora il programma può essere lanciato dove volete. Se volete potete anche (così ho fatto io) crea una icona con Menu Principale.

Alla prossima,
Davide.

P.S. Fatemi sapere se funziona o meno.

Continua a leggere!

sabato, ottobre 13, 2007

Network Simulator 2 (Ns2) - aggiornamento [deb]

Come avete notato, ho scritto due guide per installare ns2 su ubuntu. Però girando su internet, ho visto che esistono delle versioni pacchettizzate di ns2. Per questo motivo adesso vi presento il modo per installare ns2 semplicemente utilizzando i pacchetti deb e in particolare APT.
Però ci sono 2 svantaggi:

  • i pacchetti .deb sono riferiti a una versione vecchia di ns, in particolare alla 2.29.

  • la compilazione usando i sorgenti è la migliore in quanto se qualcuno vuole aggiungere nuovi moduli e costretto ad utilizzare questa versione altrimenti deve impazzire con la versione .deb dato che i moduli esterni non sono pacchettizzati e richiedono la compilazione di parte dei programmi su cui si poggia ns2


Però la semplice installazione di ns2 permette di usare il simulatore nel caso si vogliano usare feature già incorporate in ns senza complicarsi con la compilazione.

Installazione da pacchetti precompilati


Per fortuna esistono anche dei repositories per ubuntu/debian . Aggiungi queste righe nel tuo file /etc/apt/sources.list lanciando prima il comando
 sudo gedit /etc/apt/sources.list 

e scriverci dentro
 
# Network Simulator 2
deb http://bode.cs.uni-magdeburg.de/~aherms/debian sid ns2
deb-src http://bode.cs.uni-magdeburg.de/~aherms/debian sid ns2

Successivamente aggiornare i repository e installare ns con il seguente comando

sudo apt-get update
sudo apt-get install ns nam


Ulteriori risorse


Guida Installazione NS con Debian o Ubuntu
Continua a leggere!

Network Simulator 2 (Ns2) - aggiornamento alla versione 2.32

Ormai da tempo seguo il progetto del simulatore di rete. Ultimamente è uscita la nuova versione del simulatore ns2 (ns2.32). Quindi modifico la guida al fine che permetta l'installazione su Ubuntu. Io personalmente l'ho testata su Ubuntu Gutsy Gibbon 7.10.
Questa guida contiene la procedura di installazione della versione stabile più recente dell'applicazione, la 2.32, uscita il 3 Settembre 2007.

Introduzione

Network Simulator 2 è un simulatore orientato al networking. La popolarità di ns2 è essenzialmente dovuta all' eterogeneità di uso ed alla varietà di modelli messi a disposizione. Infatti ns consente di simulare molte tipologie di reti IP (LAN/WAN) implementando

  • protocolli di rete a vari livelli (MAC, routing, trasporto)

  • modelli di sorgenti di traffico (es. CBR, FTP)

  • meccanismi di gestione delle code (es. FIFO, RED)


Requisiti

Di seguito sono elencati i pacchetti necessari alla compilazione dei sorgenti:


  • build-essential

  • make

  • tcl8.4-dev

  • tk8.4-dev

  • autoconf

  • automake

  • libxmu-dev


Per installare i pacchetti con apt-get, è sufficiente aprire una finestra di terminale e digitare:

sudo apt-get install build-essential make tcl8.4-dev tk8.4-dev autoconf automake libxmu-dev


Installazione


Download del pacchetto

Posizionari nella propria Home e creare al suo interno una cartella .ns2:


cd ~
mkdir .ns2
cd ~/.ns2

Una volta creata la directory, scaricare al suo interno l'archivio contenente i sorgenti da qui oppure lanciando il comando

wget http://nchc.dl.sourceforge.net/sourceforge/nsnam/ns-allinone-2.32.tar.gz


Compilazione

Estrarre il file ~ns-allinone-2.32.tar.gz:


cd ~/.ns2
tar xzfv ns-allinone-2.32.tar.gz

Ora si può procedere con la compilazione:

cd ns-allinone-2.32
./install





Il tempo necessario al completamento dell'opeazione dipende dalla propria configurazione hardware.


Una volta terminato il processo di compilazione, è possibile provare il corretto funzionamento dell'applicazione digitando il seguente comando:

cd ns-2.32/
./ns

Come output si dovrebbe ottenere:


%

L'applicazione è stata correttamente installata.


È possibile lanciare l'eseguibile senza doversi ricordare il percorso completo. Per far ciò è sufficiente modificare il file .bashrc presente nella propria cartella Home con un qualsiasi editor di testo


gedit ~/.bashrc

Aggiungere le seguenti righe alla fine del file, sostituendo la dicitura UTENTE con il proprio nome utente:


# LD_LIBRARY_PATH
OTCL_LIB=/home/UTENTE/.ns2/ns-allinone-2.32/otcl-1.13
NS2_LIB=/home/UTENTE/.ns2/ns-allinone-2.32/lib
X11_LIB=/usr/X11R6/lib
USR_LOCAL_LIB=/usr/local/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OTCL_LIB:$NS2_LIB:$X11_LIB:$USR_LOCAL_LIB
# TCL_LIBRARY
TCL_LIB=/home/UTENTE/.ns2/ns-allinone-2.32/tcl8.4.15/library
USR_LIB=/usr/lib
export TCL_LIBRARY=$TCL_LIB:$USR_LIB
# PATH
XGRAPH=/home/UTENTE/.ns2/ns-allinone-2.32/bin:/home/UTENTE/.ns2/ns-allinone-2.32/tcl8.4.15/unix:/home/UTENTE/.ns2/ns-allinone-2.31/tk8.4.15/unix
NS=/home/UTENTE/.ns2/ns-allinone-2.32/ns-2.32/
NAM=/home/UTENTE/.ns2/ns-allinone-2.32/nam-1.13/
PATH=$PATH:$XGRAPH:$NS:$NAM


Per attivare le modifiche fatte al file .bashrc, si deve lanciare il seguente comando
 source ~/.bashrc 

Avvio dell'applicazione

Per verificare il corretto funzionamento del simulatore di rete e dei suoi componenti, si possono scaricare alcuni esempi presenti sul sito ufficiale del progetto, per poi eseguirli con il programma appena installato:

cd ~
cd ns2-example
wget http://www.isi.edu/nsnam/ns/tutorial/examples/example2.tcl
ns example2.tcl

La schermata seguente è un esempio di output di simulazione, elaborato con nam :





Allo stesso modo, si può visualizzare un esempio elaborato con xgraph:


cd ~
cd ns2-example
wget http://www.isi.edu/nsnam/ns/tutorial/examples/example4.tcl
ns example4.tcl

La schermata seguente è un esempio di output di simulazione, elaborato con xgraph :





Eliminare i file utilizzati per l'installazione

Eseguire i seguenti comandi per eliminare i file utilizzati per l'installazione e non più utili:


cd ~
rm ~/.ns2/ns-allinone-2.31.tar.gz
rm -Rf ~/ns2-example

Ulteriori risorse





Continua a leggere!

mercoledì, ottobre 10, 2007

XBackup: Programma per creare, verificare e installare file di backup

In questo periodo avendo parecchio tempo libero mi sono messo in testa di creare un programma di backup. Inizialmente questo programma doveva essere un semplice script di shell, ma solo successivamente ho creato una minuta interfaccia grafica che permette di semplificare le operazioni. Per ora, vi posto
solo il codice del programma chiamato XBackup (creato interamente da me...perfino il nome). Tale programma logicamente deve essere logicamente testato per risolvere i bugs ed inoltre può essere potenziato da chiunque (me compreso). Infatti, se avete dei consigli da darmi o avete fatto delle modifiche fatemelo sapere.

Installazione

Aprite un terminale e lanciate il seguente comando

sudo gedit /usr/bin/xbackup

Logicamente io ho utilizzato gedit. Voi potete usare qualsiasi altro programma di scrittura (kwrite, nano, vim, etc.). Copiate all'interno del file il seguente testo:

#! /bin/bash

#########################
#### XBACKUP ####
#########################

# Questo script vi permette di creare dei backup
# personalizzati utilizzando il comando tar, in particolare
# vengono creati dei file dell'estensione tar.bz2.
# Lo script si avvale del comando zenity per creare l'interfaccia grafica
#
# Lo script crea, nella cartella che durante l'esecuzione del programma
# viene specificata come quella in cui posizionare i file di
# backup, un file di estensione tar.bz2.
# Si può fare il backup di tutto il filesystem, della home o di una cartella a vostra
# scelta.
# Si possono eseguire eseguire operazioni di verifica o installazione del backup
# nonchè di creazione. Inoltre il programma si avvale di espeak per avere un
# supporto vocale. Inoltre si può decidere di avere una versione verbose o no.

# Funzione che configura alcune opzioni del programma quali ambiente grafico, supporto vocale e verbose mode
function backupconfig {
de=`zenity --title="XBackup" --list --text="Quale DE utilizzate tra questi sottostanti?" --radiolist --column="Scegli" --column="Desktop Environment" false "Gnome" false "Kde" false "Xfce"`
if [[ $de = "Gnome" ]]
then
zenity --info --title="XBackup - Informazioni" --text="Ambiente Grafico Gnome"
terminal="gnome-terminal -x"
gestore="nautilus"
elif [[ $de = "Kde" ]];
then
zenity --info --title="XBackup - Informazioni" --text="Ambiente Grafico Kde"
terminal="konsole -e"
gestore="konqueror"
elif [[ $de = "Xfce" ]];
then
zenity --info --title="XBackup - Informazioni" --text="Ambiente Grafico Xfce"
terminal="xfce-terminal -x"
gestore="thunar"
else
zenity --error --title="XBackup - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi


zenity --title="XBackup - Informazioni" --info --text="Potete abilitare il supporto vocale durante il backup. Per il corretto funzionamento del supporto sonoro installare il pacchetto espeak presente nei repository di Ubuntu (comando: sudo apt-get install espeak)"
voce=`zenity --title="XBackup" --list --text="Abilitare il supporto vocale?" --radiolist --column="Scegli" --column="Abilita" false "Si" false "No"`
if [[ $voce = "Si" ]]
then
zenity --info --title="XBackup - Informazioni" --text="Supporto voce abilitato"
espeak "Enable voice"
voce=1
elif [[ $voce = "No" ]];
then
zenity --info --title="XBackup - Informazioni" --text="Supporto voce non abilitato"
voce=0
else
zenity --error --title="XBackup - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi



zenity --info --title="XBackup" --text="Potete abilitare la modalità verbose durante il backup in maniera tale da verificare il corretto funzionamento del software di backup"
verb=`zenity --list --radiolist --title="XBackup" --text="Abilitare la modalità verbose?" --column="Scegli" --column="Abilita" false "Si" false "No"`
if [[ $voce -eq 1 && $verb = "Si" ]]
then
zenity --info --title="XBackup - Informazioni" --text="Modalità verbose abilitata"
espeak "Enable verbose mode"
verb=1
elif [[ $voce -eq 1 && $verb = "No" ]];
then
zenity --info --title="XBackup - Informazioni" --text="Modalità verbose disabilitata"
espeak "Disable verbose mode"
verb=0
elif [[ $voce -eq 0 && $verb = "Si" ]];
then
zenity --info --title="XBackup - Informazioni" --text="Modalità verbose abilitata"
verb=1
elif [[ $voce -eq 0 && $verb = "No" ]];
then
zenity --info --title="XBackup - Informazioni" --text="Modalità verbose disabilitata"
verb=0
else
zenity --error --title="XBackup - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi
}

# Funzione che crea i file di backup
function backupcreate {
zenity --info ---title="XBackup - Informazioni" --text="Adesso verrà aperto un terminale che serve al programma per creare il backup. Sarà richiesto l'inserimento della password di Amministratore (root)"
$terminal sudo apt-get upgrade
$terminal sudo apt-get clean
$terminal sudo apt-get autoremove
#sudo cpufreq-selector -g performance
cartella=`zenity --list --title="XBackup" --text="Di quale cartella vuoi fare il backup?" --radiolist --column="Scegli" --column="Cartelle" false "Home" false "/" false "Altro"`
if [[ $cartella = "/" ]];
then
backup=$dir/filesystem-$(date +%d%b%y).tar.bz2
if [[ $verb -eq 0 ]];
then
zenity --info --title="XBackup - Informazioni" --text="Adesso verrà aperta la cartella dove state salvando il backup. Verificate che la dimensione del file di backup aumenti al fine che il programma stia funzionando"
$gestore $dir
$terminal sudo tar -cvjpf $backup --exclude=/proc --exclude=/lost+found --exclude=/media --exclude=/mnt --exclude=/sys $cartella &>/dev/null
else
zenity --info --title="XBackup - Informazioni" --text="Adesso verrà aperta la cartella dove state salvando il backup. Verificate che la dimensione del file di backup aumenti al fine che il programma stia funzionando"
$gestore $dir
$terminal sudo tar -cvjpf $backup --exclude=/proc --exclude=/lost+found --exclude=/media --exclude=/mnt --exclude=/sys $cartella
fi
elif [[ $cartella = "Home" ]];
then
backup=$dir/home-$(date +%d%b%y).tar.bz2
cartella=~
if [[ $verb -eq 0 ]];
then
zenity --info --title="XBackup - Informazioni" --text="Adesso verrà aperta la cartella dove state salvando il backup. Verificate che la dimensione del file di backup aumenti al fine che il programma stia funzionando"
$gestore $dir
$terminal sudo tar -cvjpf $backup $cartella &>/dev/null
else
zenity --info --title="XBackup - Informazioni" --text="Adesso verrà aperta la cartella dove state salvando il backup. Verificate che la dimensione del file di backup aumenti al fine che il programma stia funzionando"
$gestore $dir
$terminal sudo tar -cvjpf $backup $cartella
fi
elif [[ $cartella = "Altro" ]];
then
zenity --info --title="XBackup - Informazioni" --text="Adesso ti verrà chiesta la cartella di cui vuoi fare il backup"
cartella=`zenity --file-selection --title="XBackup - Seleziona la directory da backupizzare" --text="Seleziona la directory di cui vuoi fare il backup" --directory`
file=`zenity --title="XBackup - Inserisci il nome del file di backup" --entry --text="Inserisci il nome del file di backup" --entry-text="Altro"`
backup=$dir/$file-$(date +%d%b%y).tar.bz2
if [[ $verb -eq 0 ]];
then
zenity --info --title="XBackup - Informazioni" --text="Adesso verrà aperta la cartella dove state salvando il backup. Verificate che la dimensione del file di backup aumenti al fine che il programma stia funzionando"
$gestore $dir
$terminal sudo tar -cvjpf $backup $cartella &>/dev/null
else
zenity --info --title="XBackup - Informazioni" --text="Adesso verrà aperta la cartella dove state salvando il backup. Verificate che la dimensione del file di backup aumenti al fine che il programma stia funzionando"
$gestore $dir
$terminal sudo tar -cvjpf $backup $cartella
fi
else
zenity --error --title="XBackup - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi
if [[ $voce -eq 1 ]];
then
espeak "Creation File Backup"
else
sleep 1;
fi
zenity --info --title="XBackup - Informazioni" --text="File creato: $backup"
echo "File creato: $backup"
if [[ $voce -eq 1 ]];
then
espeak "Creation File Complete"
else
sleep 1;
fi

verf=`zenity --title="XBackup" --list --text="Verificare il file di Backup creato?" --radiolist --column="Abilita" --column="Scegli" false "Si" false "No"`
if [[ $verf = "Si" ]]
then
backupverify $backup $verb $voce
elif [[ $verf = "No" ]];
then
sleep 1;
else
zenity --error --title="XBackup - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi


}

# Funzione che verifica i file di backup
function backupverify {
if [[ $voce -eq 1 ]];
then
espeak "Verify integrity"
else
sleep 1;
fi
if [[ $verb -eq 0 ]];
then
$terminal tar -tf $backup &>/dev/null
$terminal echo "Verifica integrità del file di $backup... "
else
$terminal tar -tf $backup
$terminal echo "Verifica integrità del file di $backup... "
fi
if [[ $? -eq 0 ]];
then
zenity --info --title="XBackup" --text="Controllo di integrità completato del file $backup: backup integro"
$terminal echo "Controllo di integrità completato del file $backup: backup integro"
if [[ $voce -eq 1 ]];
then
espeak "Integrity check completed"
else
sleep 1;
fi
else
zenity --info --title="XBackup" --text="Controllo di integrità fallito del file $backup"
$terminal echo "Controllo di integrità fallito"
if [[ $voce -eq 1 ]];
then
espeak "Integrity check failed"
exit 1;
else

sleep 1;
fi
fi


}

# Funzione che installa i file di backup
function backupinstall {
backupconfig
verf=`zenity --title="XBackup" --list --text="Verificare il file di Backup?" --radiolist --column="Abilita" --column="Scegli" false "Si" false "No"`
if [[ $verf = "Si" ]]
then
backupverify $backup $verb $voce
elif [[ $verf = "No" ]];
then
sleep 1;
else
zenity --error --title="XBackup - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi
if [[ $voce -eq 1 ]];
then
espeak "Decompression start"
else
sleep 1;
fi
zenity --info ---title="XBackup - Informazioni" --text="Adesso verrà aperto un terminale che serve al programma per installare il backup. Sarà richiesto l'inserimento della password di Amministratore (root)"
if [[ $verb -eq 1 ]];
then
$terminal sudo tar -xvpjf $backup -C /
zenity --info --title="XBackup" --text="Decompressione dell'archivio $backup..."
$terminal echo "Decompressione dell'archivio $backup..."
else
$terminal sudo tar -xvpjf $backup -C / &>/dev/null
zenity --info --title="XBackup" --text="Decompressione dell'archivio $backup..."
$terminal echo "Decompressione dell'archivio $backup..."
fi
if [[ $voce -eq 1 ]];
then
espeak "Decompression finish"
else
sleep 1;
fi
zenity --info --title="XBackup" --text="Decompressione terminata"
$terminal echo "Decompressione terminata"
}




# MENU PRINCIPALE DI SELEZIONE DELLE OPERAZIONI DA FARE
zenity --info --title="XBackup" --text="PROGRAMMA PER CREARE, VERIFICARE E INSTALLARE BACKUP!"
op=`zenity --width=300 --height=200 --title="XBackup" --list --radiolist --text="Programma di Backup" --column="Scegli" --column="Operazione" false "Verifica" false "Crea" false "Installa"`

if [[ $op = "Crea" ]]
then
zenity --info --title="XBackup - Informazioni" --text="Adesso ti verrà chiesta la cartella dove salvare il file di backup da creare"
dir=`zenity --file-selection --title="XBackup - Seleziona la directory dei backup" --text="Seleziona la directory dei backup" --directory`
backupconfig
backupcreate $dir $verb $voce
elif [[ $op = "Verifica" ]];
then
file=`zenity --title="XBackup - Seleziona il file di estensione .tar.bz2" --file-selection --text="Seleziona il file di estensione .tar.bz2"`
if [[ $file = *.tar.bz2 ]];
then
backup=$file
backupconfig
backupverify $backup $verb $voce
else
zenity --error --title="XBackup - Errore" --text="Il file non presenta l'estensione .tar.bz2 - Uscita inattesa"
exit 1
fi
elif [[ $op = "Installa" ]];
then
file=`zenity --title="XBackup - Seleziona il file di estensione .tar.bz2" --file-selection --text="Seleziona il file di estensione .tar.bz2"`
if [[ $file = *.tar.bz2 ]]
then
backup=$file
backupinstall $backup $verb $voce
else
zenity --error --title="XBackup - Errore" --text="Il file non presenta l'estensione .tar.bz2 - Uscita inattesa"
exit 1
fi
else
zenity --error --title="XBackup - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi
zenity --info --title="XBackup" --text="Grazie per aver usato il software!"

Salvate il file appena creato. Lo chiudete e date i diritti di avvio del programma lanciando il seguente comando:


sudo chmod a+x /usr/bin/xbackup


Se volete potete anche (così ho fatto io) crea una icona con Menu Principale.

VI INFORMO CHE A VOLTE IL SUPPORTO VOCALE BLOCCA L'APPLICAZIONE IN QUANTO ESSO OCCUPA PARECCHIA MEMORIA


Alla prossima
Davide

Continua a leggere!

venerdì, ottobre 05, 2007

Guida all'installazione di MoioSms - aggiornamento [deb]

Come ho già scritto sul wiki di ubuntu-it, Moio ha creato i pacchetti .deb per facilitare l'installazione di moiosms su ubuntu e sulle distribuzione debian-like. Inoltre ha creato il plugin per facilitare la ricerca attraverso deskbar.

Download dei pacchetti

Scaricare e salvare sulla scrivania seguenti pacchetti:

Installazione

Cliccare due volte sulle icone dei pacchetti, verrà avviato udebi con il quale sarà possibile procedere alla loro installazione.

In alternativa è possibile digitare i seguenti comandi in una finestra di terminale:

cd ~/Desktop
sudo dpkg -i moiosms_*.deb
sudo dpkg -i moiosms-deskbar_*.deb


Per tutte le altre configurazioni rifatevi al wiki di ubuntu. Finalmente l'installazione è più semplice.

Alla prossima!
Continua a leggere!