ubuntu shell script ” UNTIL “

Fino a quando la condizione non sarà vera:

ESEGUI

piccolo script che mi ha fatto comprendere nella pratica il comando until:


#!/bin/bash

var=`zenity --entry --title="valore1" --text="scrivi valore var"`

if [ $? = 0 ] ; then

zenity --info --text="$var" --timeout 2

var1=`zenity --entry --title="valore2" --text="scrivi valore var1"`

if [ $? = 0 ] ; then

zenity --info --text="$var1" --timeout 2

#####################
# UNTIL #############
#####################
until [ "$var" = "$var1" ]

do

var=`zenity --entry --title="valore1" --text="scrivi valore var"`

if [ $? = 0 ] ; then

zenity --info --text="$var" --timeout 2

var1=`zenity --entry --title="valore2" --text="scrivi valore var1"`

if [ $? = 0 ] ; then

zenity --info --text="$var1" --timeout 2

fi

fi

done

zenity --info --text="ok le variabili erano uguali ed il loop until è finito" --timeout 10
exit 0
fi

zenity --info --text="Operazione Annullata\!" --timeout 2

exit 0

fi

zenity --info --text="Operazione Annullata\!" --timeout 2

exit 0

ubuntu-salvare video streaming x successiva visione

Script personale creato x salvare un video in streaming.

Cosa fà?……visito periodicamente un certo sito x che aggrega link a filmati video in hosting su piattaforme come now video/topvideo/vk etc..

la mia connessione non è molto potente oppure a volte i server non danno molta banda, ne consegue una continua interruzione

nella riproduzione del video.Per ovviare a questo problema preferisco lasciare in stream il video,senza vederlo e con questo script

salvarlo su una cartella apposita per una succesiva visione.Utilizzo il browser firefox ed i filmati in flash non hanno più la loro cache

nella cartella di firefox bensi creano un collegamento simbolico in una sottocartella di /proc/ ..magari dico una cazz.ta ma credo sia la RAM.

La parte più importante di questo script è la cattura della path generata dal player flash dentro /proc/ ..
questa riga è l’unica cosa che non ho scritto io ma trovata in rete (meno male).
Il resto è molto semplice, il mio script lo lancio come script di nautilus in qualsiasi cartella purchè dell’utente e non di root,

apro il sito X e vado nella pagina x dove c’è o il player o il link al player,

faccio partire il player flash del video, dopo lo metto in pausa e continuerà com.que il buffering.

lancio lo script sul desktop col click destro > nautilus script > savestream.sh

una finestra di zenity mi chiede di inserire l’url (nel mio caso personale è l’url del sito x..non della possibile url dov’è il player video)

ciò mi serve per prendere dall’HTML del sito X il nome preciso del filmato comprensivo di tipo di codifica..(una mia mania bypassabile)

una seconda finestra di zenity mi mostra il titolo e dice di copiare il titolo del filmato, ne prendo la parte che mi interessa dal testo mostrato nel dialogo zenity,

se fosse vuoto, posso andare avanti com.que e o scriverlo a mano o incollarlo dopo averlo copiato da qualsiasi altra parte.

appunto terza finestra zenity per incollare il titolo.Da qui in poi posso uscire per una birra..

a questo punto  il browser con il player devono rimanere in esecuzione,

creo due variabili che contengono il peso del file di mio interesse,

le variabili nella loro creazione hanno uno sleep tra l’una e l’altra di 15 minuti,

utilizzando un ciclo until

farò il confronto tra le variabili, e se dal confronto esce un “true” vero, ossia le due variabili sono uguali

quindi il peso del filmato a distanza di 15 min non è cambiato che sarebbe a dire buffering completo-filmato pronto

allora farò una copia del filmato in una directory di mio piacere,

rimuoverò il file index-html prec.te creato e sono a posto.

Se il ciclo until nel confronto invece trova la condizione falsa, non farà altro che ripetere la creazione delle due variabili a distanza di tot tempo.

Prima o poi saranno uguali.

Nello script noterete molti zenity info…ce li ho lasciati solo perchè a me chiarivano durante i test, la dinamica dello script al lavoro.


#!/bin/bash
#################################################################
# nautilus script lanciare solo se si è in directory dell'user -dipendenza zenity
################################################################
# lo script si lancia col click destro ovunque, mi serve sempre sapere dove l'ho lanciato perchè #
# eseguiro comandi che creeranno file da rimuovere successivamente ---USO PWD                       #
####################################################

dovesono="$(pwd)"

#####################################################
# quando lancio lo script avrò la finestra browser con pagina film aperta
# e con pagina e player flash già in buffering
# mi serve l'url per ricavarne poi il giusto nome del file (solo in alcuni casi funziona)
# copiare ed incollare l'url nella finestra di zenity
######################################################

uerrelle=`zenity --entry --title="paginaFILM" --text="incolla url"`

if [ $? = 0 ] ; then

#######################################################
# wget tira giù la pagina html ovunque io abbia lanciato lo script quella sarà al sua path
#######################################################

wget "$uerrelle"
#######################################################

# estraggo  il nome del file dal codice html della index scaricata
########################################################

titolo="$(grep '
<td><a href=\"http://www.topvideo.cc' index.html | cut -f 2 -d=)"
########################################################

# zenity in una finestra di dialogo mi darà la possibilità di copiare il codice estratto
#######################################################

zenity --info --text="copiati il titolo film "$titolo""

###################################################################

# il titolo và incollato nel dialogo zenity e poi aggiustato con tr
###################################################################

titolofile=`zenity --entry --title="paginaFILM" --text="incolla titolo"`

if [ $? = 0 ] ; then

titolofilegiusto="$(echo $titolofile | tr 'A-Z.' 'A-Z_')"

###########################################################

#comando iniziale per comprendere dovè archiviato il file video
############################################################

percorso=$(lsof -p `ps x | awk '/libflashplayer.so\ /{print $1}'` -n 2>/dev/null
| perl -lne '@F = split(/ +/, $_, 9);
print "/proc/$F[1]/fd/${\($F[3] =~ /(^\d+)/)[0]}" if $F[4]
eq "REG" && $F[8] =~ /\(deleted\)$/');
percorso2=$(echo $percorso | cut -f 4,3,2,1 -d/)/
nomefile=$(basename $percorso)
zenity --info --text="percorso catturato "$percorso"" --timeout 2

################################################################

# attesa affinchè sia sicuro che parte del file risieda su disco
# creazione di  variabili contenenti informazione in merito al peso file
# parte il loop o ciclo until (fino a quando la condizione non sarà vera eseguirà
# ogni 15 minuti la creazione di due variabile per confronto peso file
###############################################################

sleep 10

controllo1="$(exiftool $percorso | grep "MB" | cut -f 2 -d:)"

sleep 60

controllo2="$(exiftool $percorso | grep "MB" | cut -f 2 -d:)"

until [ "$controllo1" = "$controllo2" ]

do

controllo1="$(exiftool $percorso | grep "MB" | cut -f 2 -d:)"

sleep 15m

controllo2="$(exiftool $percorso | grep "MB" | cut -f 2 -d:)"

done

zenity --info --text="controllo fatto" --timeout 6

zenity --info --text="questo percorso $percorso" --timeout 6
cd $percorso2
verificapath="$(pwd)"
zenity --info --text="mi sono mosso e sono qui $verificapath" --timeout 6

cp $percorso ~/Video/
mv ~/Video/$nomefile ~/Video/$titolofilegiusto.flv

rm $dovesono/index.html
exit 0
fi

zenity --info --text="Operazione Annullata\!" --timeout 2

exit 0

fi

zenity --info --text="Operazione Annullata\!" --timeout 2

exit 0

estensione gnome shell-radio menù integrato nel menu volume

Mi sono creato un estensione per gnome-shell,

trattasi di un menù integrato nel volume menù, e che contiene 4 stazioni radio da ascoltare in streaming.

Come riproduttore utilizzo mplayer, lanciato all’interno di una console “gnome-terminal”, potete cambiare il player andando ad editare i file.sh

Intanto uno screenshot:

estensione gnome shell radio

estensione gnome shell

 

 

 

 

 

 

 

 

 

 

 

Poi allego qui l’estensione
radio@sitiwebxtutti.gmail.com
L’estensione contiene le seguenti RADIO:

  1. radiofip.fr http://www.tv-radio.com/station/fip_mp3/fip_mp3-128k.m3u
  2. radio krautrock http://80.237.157.67:7592/listen.pls
  3. radio psychedelic jukebox http://174.122.26.34:8140
  4. radio raiuno rtsp://live.media.rai.it/broadcast/radiouno.rm

Ora una cosa importante:

l’estensione lancia degli script di bash, uno per ogni radio,

vi allego qui i quattro script che posizionerete nel posto a voi più consono, io personalmente uso una cartella apposita per gli script che mi faccio ed uso su ubuntu.

Download script-radio

Passo passo come fare tutto correttamente:

prima cosa controllate le dipendenze, dovete avere mplayer e gnome-terminal:

sudo apt-get install mplayer gnome-terminal -y

poi i file che avete scaricato, o meglio gli archivi decomprimeteli,

mette i file .sh nel luogo che più vi torna comodo e rendeteli eseguibili,

aprite con editor di testo tipo gedit, il file dell’estensione contenuto nell’archivio  radio@sitiwebxtutti.gmail.com>>>>   extension.js

inserite il percorso corretto che punta ai file .sh precedentemente scaricati , vi basta leggere nello script .js e troverete dove mettere i percorsi.

Salvate il file, e spostate tutta la cartella radio@sitiwebxtutti.gmail.com in ~/.local/share/gnome-shell/extensions/

poi date ALT F2 scrivete r e date invio per riavviare la shell, aprite gnome-tweak-tool e attivate l’estensione, buon ascolto! ;-)

se ho tralasciato qualcosa fatemelo sapere…grazie

estensione radio

avconv ruotare un video specchio mirror

premessa:
comando testato solo con file m4v e con opzioni come da esempio:

questa la posizione del video originale:

video-origine

 

 

ho utilizzato una opzione di avconv per ruotare questo video, trovata in più di un blog, ho fatto poi qualche test per vedere cosa accadeva con i valori possibili per l’opzione.
non sono al corrente se esistano altre opzioni per fare la rotazione, e vista la vastità del man di avconv rimando a seconda della necessità.

avconv -i video-origine.m4v -ar 44100 -y -vf "transpose=0" vf-transpose-0.m4v

I valori possibili per l’opzione “-vf-transpose=” vanno da 0 a 3
l’opzione -i è il video in ingresso -ar riguarda l’audio e l’opzione -y sovrascrive un eventuale file di output già presente con lo stesso nome.
Con il primo comando quotato sopra, cioè con valore zero si ha una rotazione di 90° orari con effetto a specchio/mirror
questo il risultato:

transpose-zero

 

 

 

 

  1. con valore 1 si ha una rotazione di 90°  orari
  2. con valore 2 si ha una rotazione di 90° antiorari
  3. con valore 3 si ha rotazione di 90° antiorari e specchio/mirror

vedere le immagini per comprendere meglio:

transpose-uno transpose-due transpose-tre

 

 

galaxy gio GT-s5660 + clockworkmod recovery + romCyanogenMod 7.2-20121212-(Mabit ver. 3)

appunti per ricordare:

  1. scaricare i seguenti file:  clockworkmod-recovery 5.0.2.6(full version) —→→→  CyanogenMod 7.2-20121212-(Mabit ver. 3) —→→→ GAPPS
  2. il mio gio GT-s5660 è unbranded, installare ora la clockwork.mod così:
  3. spostare il file clockwork-mod nella SD directory principale
  4. spegnere il Giò e riavviarlo in recovery mode (Tasto Home + Tasto Accensione)
  5. selezionare apply update from sd card, dare invio con tasto home, con i tasti volume scegliere il file clockworkmod, confermare con tasto home..poi confermare con il tasto home per il riavvio.
  6. rispegnere e riandare in recovery (Tasto Home + Tasto Accensione)
  7. * Eseguite wipe /data
    * Eseguite wipe /cache
    * Eseguite Advance–> wipe /dalvik cache (tasto indietro e torni alla schermata precedente)
    * Installare la rom facendo install zip from sd card>choose zip from sdcard e scegliete il file .zip della ROM
    * Reboot(se va in bootloop tornate in recovery e rifate i wipe )
    * Tornate subito in recovery
    * Andate in mounts & storage, selezionate mount/ system (si trasformerà in unmount)
    * Installare le GAPPS facendo install zip from sd card>choose zip from sdcard e scegliete il file zip di quest’ultime
    * Reeboot

tutto liscio come l’olio!!

screenshot-20130327-202336screenshot-20130327-202413 screenshot-20130327-202354 screenshot-20130327-202427

 

Installazione Ubuntu-Gnome-remix 12.10.1

tentativo di installazione di ubuntu-gnome-remix 12.10.1 quantal quetzal,..

scaricata la iso, fatto il checksum,

con l’applicazione “creatore dischi di avvio” da ubuntu 10.04 ho creato la usb bootable distro,

restart del pc con boot dell’usb pen,

avvio della pennetta,

primo problema: si ferma il boot con il seguente messaggio:

unknow keyword in configuration file”

risolvibile facilmente seguendo questa guida

dopo aver modificato il file, si ricomincia da capo,

ora l’avvio è ok, ubuntu-gnome-remix parte in modalità live,

setto per bene la mia connessione di rete, bene sono online,

avvio l’installazione dal lanciatore della dash!…

ok tutto perfetto ed a posto,….riavvio!! (ho già tolto la penDRIVE e rimesso il boot a dovere)

dopo il riavvio sembra tutto funzionare a dovere,

apro il gestore software di gnome-shell e faccio gli aggiornamenti, circa 90mb….

qui noto una cosa insolita,…mentre faccio questi aggiornamenti, il mouse o meglio i tasti del mouse

non hanno alcuna funzionalità per esempio esplorando il web con il browser, possono invece funzionare

nelle parti attive di gnome shell, nei pannelli estensioni..ecc….e altra cosa insolita, la tastiera non riempie il campo nella gnome-shell search bar!!….

fatto l’update…

riavvio richiesto….

riavvio

e qui lo stop!!…..  non parte più il  sistema,…rimane solo l’immagine di sfondo del desktop ed il mouse..

nessuna combinazione di tasti genera alcun chè…gli hard disk sono muti,….nisba …

fatto per due volte!!!….gnome-remix ti saluto!!!

 

google-chrome lanciare una sessione ospite

Volevo fare in modo che sul mio PC potessi lanciare il browser google chrome,

con una sessione che non contenesse alcun dato del mio normale utilizzo del browser, password,navigazione etc.etc.. e volevo anche che i normali lanciatori nel mio ubuntu precise pangolin facessero riferimento appunto al lanciare google chrome come se fosse una sessione ospite nuova di zecca.

Per fare ciò ho utlizzato un comando di google-chrome ed ho anche creato una cartella di un ipotetico utente ospite, ma senza fare un nuovo account sul mio pc (o meglio un nuovo utente del PC.)

La cartella che conterrà la configurazione per la sessione ospite è in relatà la cartella di default che il browser crea per gli utenti ad ogni nuova installazione/utilizzo; la definirei “google-chrome vergine”

Per comodità la metto come archivio in ospite-google-chrome.tar disponibile per il download.

Questa cartella che io ho chiamato: ospite-google-chrome

và messa nella directory: home/USER del computer/.config/ospite-google-chrome

il comando che invece farà partire il browser con la sessione “ospite” è:

 

google-chrome --user-data-dir=/home/user/.config/ospite-google-chrome

e visto che voglio che i lanciatori facciano riferimento a questo comando
con alacarte ho cambiato il comando dei lanciatori da così:

/opt/google/chrome/google-chrome

a così:

/opt/google/chrome/google-chrome --user-data-dir=/home/user/.config/ospite-google-chrome

In questo modo sia dalla dash di gnome Shell che dal menù lanciatori il sistema lancierà il comando così personalizzato
avviando una sessione chrome “ospite”…ovvio che il browser che invece utilizziamo sempre e che contiene molte informazioni
riservate e leggermente sensibili (a seconda dei casi)potrà essere avviato sia con un lanciatore personalizzato, sia con il comando “google-chrome” da terminale ed anche con una scorciatoia da tastiera,..questo piccolo stratagemma può essere utile quando magari il pc lo usa sporadicamente qualcuno che vi fà visita o un bambino che magari senza volerlo potrebbe fare qualche casino,…inoltre dalle impostazioni di google chrome effettuo qualche variazione in modo tale che il browser cancelli i dati di navigazione alla sua chiusura e non richieda il salvataggio delle password ed il completamento dei moduli, cosicchè rimanga diciamo sempre “VERGINE”,…….lasciamo quindi i lanciatore del browser in bella mostra sulla dash ma questi aprirà una sessione OSPITE….

PENTAX optio VS20 avconv avi →to mp4→ to webm

Un pò di impazzimento ma alla fine l’ho trovato!!

di che parlo?…..

del comando giusto per convertire il file avi della mia pentax optio vs20 prima in mp4 e poi in webm…

a che mi serve avere due file video?

mi serve per un player web html5 ” JWPLAYER” che ingloba entrambi i formati   vedi questo esempio.

la mia distro GNU/linux è ubuntu precise pangolin

ed uso i seguenti comandi:

 

avconv -i nomevideo.avi -b 2048k -r 30 -c:a libmp3lame nomevideo.mp4

avconv -i nomevideo.mp4 -y nomevideo.webm

Nel mio caso ho impostato l’encoding da avi a mp4 con un bitrate di 2048kbps ed un frame rate di 30 fps come da specifiche per l’ HD720p 1280×720

è possibile allegerire ancora ma a scapito della qualità video che con 2048 è appena accettabile…

esempio:

  • HD-720p 1280×720@30fps 2048kbps
  • HD-720p 1280×720@30fps 1472kbps
  • HD-720p 1280×720@30fps 1024kbps
  • HD-720p 1280×720@30fps 768kbps

ubuntu 12.04 AVCONV avi to mp4

Per convertire file video da formato .avi a formato .mp4 io utilizzo questo comando:

avconv -i input.avi -c:v libx264 -crf 23 -c:a libfaac -b:a 192k output.mp4

il risultato è un file mp4 di uscita con peso di circa 1/3 rispetto all’originale avi.

 

Con altre opzioni utilizzando sempre avconv si ottiene una qualità migliore del video in uscita (HD720p 1280×720) e si utilizza il codec audio lame mp3 attraverso le librerie libmp3lame, controllare la dipendenza:

 

avconv -i "$videoname".avi -b 2048k -r 30 -c:a libmp3lame "$videoname".mp4

Questo secondo comando mi è tornato utile per fare l’embedding del video in jwplayer con standard html5.(vedi post)

Android camera, scatto continuo pc script

Android che nel mio tel è alla versione 2.3.3, ha la possbilità di effettuare scatti di fotocamera in modlaità continua, 9 scatti per l’esattezza.

Gli scatti purtroppo per motivi tecnici vengo eseguiti ad una risoluzione di 320×240,

però l’idea è carina e visto il senso dinamico implicito in una tale facoltà di ripresa,

mi sono fatto il mio scriptino crea gif animata, inoltre dà anche una aggiustatina

ai nomi file che contengono spazi.

#!/bin/bash
#
# http://ilceramista.com/ubublogger
# system kernel:3.2.0-32-generic
# os type DISTRIB_DESCRIPTION="Ubuntu 12.04.1 LTS" 
# 
# 
##  ~~~ LAVORA NELLA DIRECTORY CORRENTE ~~~
### utilità per immagini: controlla il nome del file
### e nel caso contenga degli spazi li sostituisce con underscore
### di tutti i jpg crea un animazione gif
### utile per gli scatti sequenziali android
 
find . -type f -iname '*.jpg' | sed 's/.\///g' | 
 
	while read var ; do
 
newname=`echo "$var" | sed 's/ /_/g'`
 
if [[ "$var" == "$newname" ]]; then
echo "$var-nessun nome da cambiare"
 
else
 
echo "$var-rinomino in $newname"
 
mv "$var" "$newname"
 
fi
 
done
 
convert -delay 10 -loop 0 *.jpg animation.gif
 
exit 0