Rinominare File in Bulk usando una combinazione di comandi: ls, sed e mv

Ultimamente ho avuto la necessita’ di rinominare una serie di file in bulk.

Tali files erano all’interno di una cartella, la quale veniva usata dal demone samba per la condivisione nella mia rete.

Il problema che avevo era dovuto al fatto che samba mal supporta i file con i nomi troppo lunghi e per tale motivo, se si accede da remoto alla cartella, vediamo una sequenza di caratteri “strani” invece del loro nome originale

Supponiamo di avere un file del genere nella cartella usata da samba

XDCC|OceaN|NewS|26.Trailer.Film22.MD.HDCAM.x264-iND.mkv
XDCC|OceaN|NewS-Time44|26.Trailer.Film1.MD.HDRIP.x264-iND.avi

La stessa cartella, quando vista da remoto da un client samba appariva con nomi diversi come:

XOSHQU~F.mkv
XCKQJB~8.avi

 

Lo script e’ davvero semplice, ed usa una combinazione di tre comandi shell:

  • ls -> usato per scorrere la lista dei files nella cartella
  • sed -> usato per il replace del nome
  • xargs and mv -> usato per il rename effettivo del file

 

[code language=”bash”]
ls *| sed -e ‘p;s/[a-z;A-Z]*|[a-z;A-Z]*|[a-z;A-Z]*\([a-z;A-Z]*\|-[a-z;A-Z]*\)|[0-9]*.//g’ | xargs -n2 mv
[/code]

Se lanciato il comando precede avremo rinominato i file nella seguente maniera

Trailer.Film22.MD.HDCAM.x264-iND.mkv
Trailer.Film1.MD.HDRIP.x264-iND.avi

Permettendo a samba di mostrarli ai client remoti senza gli strani caratteri che abbiamo visto in precedenza.

Riferimenti:
http://www.oreilly.com/openbook/samba/book/ch05_04.html

Creazione Video Da Sequenza di Immagini Timelapse

Già mi ero cimentato qualche volta con la creazione di un video tramite sequenza di immagini timelapse, usando dei tool che in automatico mi creavano il flusso video da una sequenza di immagini.

Questa volta, da buon smanettone :P, ho voluto utilizzare solo la potenza della shell di Linux e strumenti OpenSource come ffmpeg.

L’hardware a disposizione non è stato uno dei migliori. Ho dovuto utilizzare il mio vecchio Asus EeePC 701 dotato di una misera telecamera da  640×480 px … e tanta pazienza :D.

1) Cattura Immagini Timelapse

Per la cattura delle immagini dalla videocamera ho usato il tool sviluppato da Ubuntu: cheese  e l’utility scrot per quanto riguarda la cattura delle immagine tramite screenshot.

Il mio script non fa altro che lanciare cheese in background a tutto schermo e catturare le immagini ogni 5 sec via scrot. So che esistono molti altri metodi per catturare le immagini direttamente dalla fotocamera senza effettuare lo screenshot, ma nel mio caso avevo bisogno di mostrare anche al pubblico le immagini che stavo riprendendo.

[sourcecode language=”bash”]
#!/bin/sh

/usr/bin/cheese &

while true
do
scrot /media/photo/’%H%M%S.png’
sleep 5
done

[/sourcecode]

2) Creazione Flusso Video

Se tutto è andato nel verso giusto avremo le nostre .png pronte per essere unite tra loro per creare il flusso video vero e proprio. FFMPEG è proprio il tool che fa a caso nostro, infatti basta dare questo piccolissimo comando per avere il video finale.

[sourcecode language=”bash”]
$ ./ffmpeg -i ../media/photo/%*.png -r 15 -vb 4096k out.mp4
[/sourcecode]

Dove:

  •  -i ../media/photo/%*.png  indica la sorgente (nel nostro caso le immagini) da cui assemblare il video
  •  -r 15 indica il frame rate che vogliamo utilizzare
  • -vb 4096k  indica il birate da utilizzare

Nel caso volessimo aggiungere anche una base musicale (non guasta mai) basta inserire un altro piccolo flag:

[sourcecode language=”bash”]
$./ffmpeg -i out.mp4 -i my_music.mp3 -vcodec codec -acodec codec output_video_with_music.avi -newaudio
[/sourcecode]

Questo è il mio timelapse effettuato durante la Sagra del Pecorino di Filiano 2013. Buona visione!

OpenWrt ( Kamikaze ) su Miktronik RouterBoard rb112

E’ da un po’ di giorni che cerco di aggiornare la mia RouterBoard rb112 con la nuova versione di OpenWrt Kamikaze 8.09.02, per tale motivo ho deciso di scrivere un piccolo articolo sui passi che ho seguito per riuscire nell’impresa 😀

Miktronik RouterBoard

OverView

Prima di procedere, vediamo le caratteristiche principali del router Miktronik

la board e’ equipaggiata con un processore MIPS32 4Kc ad una frequenza di 175MHz Infineon ADM5120 (Little Endian), due slot mini-pci, 16 MB di RAM, 64 MB di memoria NAND ed una porta ethernet

N.b. ricordiamoci che il processore e’ Little Endian per quando andremo a compilare il kernel

Prerequisiti

L’unico modo per poter installare OpenWrt sulla board, e’ quello di usare NetBoot ( cioè’ far caricare l’immagine del kernel da rete per poi installare il kernel nella flash del dispositivo ) un cavo seriale ed una connessione ethernet.

Per fare questo dovremmo avere una macchina che funzioni sia da:

  1. server DHCPD 
  2. server TFTPD
  3. server HTTP
  4. serial client 
Se avete una macchina linux il gioco e’ molto semplice, basta configurare il demone DnsMasq che implementa le funzionalità’ (TFTPD e DHCPD), Apache come server HTTP e Minicom come programma client per la porta seriale.

Io non ho usato DnsMasq, ma ho usato come server TFTPD http://mirror.usu.edu/mirrors/gentoo/distfiles/tftp-hpa-0.48.tar.bz2

  1. Scompattiamolo e configuriamolo con i classici comandi ./configure e make
  2. ./tftpd/tftpd -s -L [tftpdir] , dove [tftpdir] e’ la cartella dovre andranno i nostri file usati per flashare il dispositivo ( vedi in seguito) 

Leggi tutto “OpenWrt ( Kamikaze ) su Miktronik RouterBoard rb112”

Bash: Script download automatico con MlDonkey dei link ed2k dal Forum dduniverse.net

Vi assumete tutte le responsabilità nell’uso illegale dello script 😛

Stamattina non avendo nulla di meglio da fare, o meglio, cercando una “seria” alternativa allo studio… mi sono messo a girare per il forum dduniverse.net in cerca di qualche videolezione di UniNettuno sui Sistemi Operativi 😀

Dopo una breve ricerca riesco a trovare la pagina ed inizio a copiare-incollare i link ed2k… arrivato al link 5/29 mi chiedo, ma come posso automatizzare il download dei link ed2k sul mio server MLDoneky ? (uso Safari per la navigazione e non posso usare lo script messo a disposizione nella pagina del forum)

Eccovi la risposta che mi sono dato 😀

download_link_mldonkey.sh
[sourcecode language=”bash”]

#!/bin/sh

#############################
# Author #
# Flavio Pace #
# www.vitadastudente.it #
# #
############################
function usage(){
echo “Usage $0 URL_Links IP_Server_MlDoneky –> to login and download”
echo “Example :”
echo “$ sh download_link_mldonkey.sh http://dduniverse.net/ita/viewtopic.php?p=5691388 localhost ”
}
PHPBB_URL=http://dduniverse.net/ita/
PHPBB_TARGET_URL=$1
USER=flavio_user
PASS=flavio_pass
USER_MLDONEKY=admin
PASS_MLDONKEY=admin
MLDONKEY_IP=$2
MLDONKEY_PORT=4000

#————————— login —————————
if [ $# -eq 2 ] ; then

wget –save-cookies=./session-cookies-$USER $PHPBB_URL/ucp.php?mode=login -O – 1> /dev/null 2> /dev/null

SID=`cat ./session-cookies-$USER | grep _sid | cut -d$’\011′ -f7`

echo “Login $USER –> $PHPBB_URL SID=$SID”

wget –save-cookies=./session-cookies-$USER \
–post-data=”username=$USER&password=$PASS&redirect=index.php&sid=$SID&login=Login” \
$PHPBB_URL/ucp.php?mode=login –referer=”$PHPBB_URL/ucp.php?mode=login” \
-O – > /dev/null

echo ” Download Page with Link ”
wget –load-cookies ./session-cookies-$USER $PHPBB_TARGET_URL -O link.txt

echo ” Running Parsing on file ”
grep -o ‘ed2k://[^”]*’ link.txt | grep -v ‘;’ > link_par.txt

echo ” Connect Mldoneky Server”
(echo auth $USER_MLDONEKY $PASS_MLDONEKY;echo dllinks $PWD/link_par.txt; echo vd; echo q) | nc $MLDONKEY_IP $MLDONKEY_PORT

else

usage
fi

[/sourcecode]

 

Lo script è stato scritto per l’uso con il forum phpBB dduniverse.net, ma nulla vi vieta di modificarlo a vostra piacimento per qualsiasi altro forum e/o sito web.

I parametri USER e PASS sono relativi all’accesso a dduniverse.net

I parametri  USER_MLDONKEY e PASS_MLDONEY sono relativi all’accesso al server telnet di MLDonkey.

Gli altri parametri credo si commentino da soli e non hanno bisogno di spiegazioni, ora supponiamo di voler scaricare tutti i link relativi ai video sul corso di Reti di Calcolatori:

http://dduniverse.net/ita/viewtopic.php?p=5691388

il comando da usare è il seguente:
[sourcecode language=”bash”]

$ sh download_link_mldonkey.sh http://dduniverse.net/ita/viewtopic.php?p=5691388 localhost

[/sourcecode]

 

Se tutto sarà andato per il meglio, la nostra bella bash ci restituirà qualcosa del genere a conferma del fatto che tutti i passaggi sono andati a buon fine

 

Buon Download a tutti, e ricordatevi che scaricare materiale coperto da copyright è illegale 😛

 

Quale Sistema Operativo Scegliere?

 

Windows vs Mac OS X vs Linux - La sfida di sempre

 

 

 

Diffidate della gente che vi dice: Questo Sistema Operativo e’ meglio di quell’altro.. questo Sistema e’ piu’ sicuro… quel Sistema  e’ il piu’ veloce ecc.. Diffidate anche di questa guida, serve solo per darvi un’idea, la mia idea, su quale Sistema Operativo scegliere per il vostro computer.

Da quel poco che ho potuto capire dagli esami sostenuti riguardo l’architettura alla base dei Sistemi Operativi, e’ che l’unica risposta sensata da dare quando una persona ci chiede consiglio su quale Sistema Operativo scegliere e’ : Dipende.

Ho un feeling speciale con Mac OS X, il quale e’ l’ideale per l’uso che voglio fare del mio calcolatore, Ha un cuore BSD ( tutti gli strumenti di amministrazione messi a disposizione da Unix) ed una interfaccia Aqua davvero accattivante ed innovativa… ma cio’ che funziona egregiamente per me non e’ detto che vada bene per qualsiasi altra persona.
Questo non significa che Mac OS X non ha “problemi”. Ne ha molti: Apple usa spesso hardware gia’ vecchiotto, ha una limitata scelta nella configurazione hardware dei suoi calcolatori, Kernel Panic a iosa quando si cerca di modificare qualcosa nel Kernel :D… e costano un bel po’.
Nonostante questo, credo che attualmente Mac OS X sia la piattaforma client piu’ meritevole e con un alto tasso di sicurezza rispetto agli atri sistemi.

Certo, la sicurezza di un Sistema Operativo e’ un parametro molto labile in questo campo. Sono consapevole del fatto che la maggior parte delle Falle di Sicurezza e dei Bug si riferiscono al Sistema Operativo Windows, ma questo e’ dovuto al semplice fatto che sono i piu’ utilizzati.. per tale motivo una persona che voglia sottrarre informazioni cerca di “bucare” il Sistema Operativo piu’ utilizzato e non quello con un numero esiguo di utenti.

 

Nota che non il termine “client” voglio indicare l’uso con cui la maggior parte degli utenti fa del proprio personal computer. Un sinonimo di client potrebbe essere “Desktop Replacement”, con il quale si vuole indicare una macchina usata tutti i giorni sia per lavoro che per gioco.

Ho avuto la fortuna di poter utilizzare i tre maggiori Sistemi Operativi lato client: La famiglia Linux, Mac OS X, e la famiglia di Windows. In queste poche righe cerchero’ ( umilmente ) di dare la mia opinione su tutti e tre.

 

Leggi tutto “Quale Sistema Operativo Scegliere?”

Fluxbox: Come Settare la tastiera italiana

Ebbene si… questa volta ho scelto Fluxbox come X-Windows della mia installazione Slackware che funge da Server (sshd, vpn, squid, mailserver e nfs) casalingo. Devo ammettere che la prima impressione è stata davvero positiva, d’altronde per noi “spartani” possessori di Slack non potevate aspettarvi l’uso di Compiz o altre sciocchezze del genere :P.

A volte mi stupisco da solo… dato che chiunque abbia letto un minimo questo blog ( ma non avete niente di meglio da fare? 😀 ) si sia chiesto come mai alterni Mac OS X ( quindi Cocoa, XQuartz ) alla visione essenziale e spartana di una Slackware… bhe me lo chiedo spesso anche io senza trovarvi risposta alcuna 😀

Cmq ritornando al titolo del post, volevo mostrarvi come ho risolto elegantemente il problema dovuto al settaggio scorretto della tastiera imposto da fluxbox al suo avvio. In tal modo protremmo caricare la corretta keys (quella italiana nel nostro caso ) direttamente dal windowsmenu (tasto destro del mouse).

Le linee di codice da inserire sono pochissime, vediamo come e dove inserirle per farle apparire nel nostro menu. Spostiamoci nella cartella nascosta dove sono presenti tutti i settaggi di Fluxbox


unicondor@server$ cd .fluxbox

una volta raggiunga tale directory inseriamo queste linee di codice nel file menu


[submenu] (Keyboard)
[exec] (it) {setxkbmap it}
[end]

Leggi tutto “Fluxbox: Come Settare la tastiera italiana”

Lista Comandi Utili Shell Linux/Unix

Il seguente elenco e’ una lista disordinata di comandi shell utili (Unix-based Linux/Mac), tali comandi non sono spiegati nel dettaglio ma possono facilitare l’amministrazione quotidiana di un sistema basato su Unix. La combinazione dei tasti CTRL+f dal vostro browser puo’ essere molto utile nella ricerca di un determinato costrutto o comando. Qualche comando puo’ valere solo per le Shell Bash. 

  • Per trovare i dettagli hardware di una Linux box:
     lspci
  • Per trovare la versione del kernel e della distribuzione di linux:
     uname -a
  • Per trovare info su cpu:
     cat /proc/cpuinfo
  • Per decomprimere file gzip:
     gungzip something.tar.gz
  • Per scompattare il file tar:
     tar xvf something.tar
  • Per decomprimere ed estrarre in un solo passaggio:
     tar xvzf something.tar.gz
  • Per installare un software da rpm:
  • Leggi tutto “Lista Comandi Utili Shell Linux/Unix”

Hadoop: Guida all’uso e alla Configurazione (single node)

Vi siete mai chiesti come fanno i grandi motori di ricerca (Google, Yahoo)  e/o i grandi social network (Facebook, MySpace ecc..) ad indicizzare ed elaborare le grosse quantità di dati che giornalmente immagazzinano nei loro server!?

Hadoop è uno dei framework più utilizzati per tali scopi,  sviluppato con tecnologia Java, è stato pensato per l’elaborazione di grosse quantità di dati in applicazioni distribuite.

Tanto per avere un idea di cosa stiamo parlando, vi incollo alcuni dati presi da cloudera sulla quantità di dati che giornalmente vengono elebarati con questo framework open source:

• 2007 Data processed by Google every month: 400 PB
(400 PetaByte corrispondono a 400.000.000 GigaByte)
• 2007 Ny Times processed 4 TB archives on 64 nodes EC2s in 26 hours
( 4 TeraByte corrisposdono a 4000 GigaByte)
• 2009 Yahoo sort 1 PB of data in 16.46hours over 3658 nodes

Leggi tutto “Hadoop: Guida all’uso e alla Configurazione (single node)”