BROCADE_fnl_TM

FabricOS e configurazioni

Nella gestione di una fabbrica fiber channel realizzata con switch Brocade (o assimilabili) si ha a che fare con il sistema FabricOS (ne abbiamo già parlato in un precedente articolo). Questo ha tutta una serie di comandi per creare e modificare la sua configurazione.

A differenza del Cisco IOS, nel FabricOS la sintassi di configurazione differisce dalla sintassi nella visualizzazione della configurazione stessa. Pertanto chi è abituato a Cisco IOS trova difficoltoso “copiare” una parte della configurazione da uno switch ad un altro osservandone semplicemente la configurazione tramite i comandi alishow, zoneshow e cfgshow.

È la classica situazione in cui si trova il sistemista che deve risolvere il conflitto di due fabbriche segmentate su una connessione ISL. La soluzione passa per la clonazione della configurazione su tutti gli switch interessati.

Il comando configupload, salvando la configurazione dello switch in un formato ASCII su un server FTP o via SCP, potrebbe tornarci utile (come in molti consigliano). Ma l’utilità si ferma al poter individuare  le differenze, e soltanto a patto di riordinare le righe della configurazione prima di eseguire tale ricerca.

Applicare le opportune modifiche non è cosa diretta.

Nel file (pur potendo scegliere tra configurazione intera e riduzione al  solo chassis o al solo switch) sono presenti informazioni non replicabili su tutti gli switch.

La replica della configurazione al fine di sanare una segmentazione deve considerare solo  alias, zone e configurazioni, non parametri dello chassis o dello switch che sono parametri univoci (e devono rimanere tali), come nome, indirizzo, id di dominio, ecc. Pertanto un file generato da uno switch non potrà essere caricato su di un altro, se non al fine di un disaster recovery.

Inoltre una zona (ad esempio) in questi file è espressa con la seguente:

zone.Prod1_C_CXPROD_SPA0:Prod1_Adapter_C;CX4_PROD_SPA0

che è cosa diversa dal comando per istruirla:

zonecreate "Prod1_C_CXPROD_SPA0", "Prod1_Adapter_C;CX4_PROD_SPA0"

La cosa ottimale sarebbe poter avere una traduzione del formato del file di configurazione scaricato dallo switch reputato “modello” e poterla replicare sugli altri dopo averli ripuliti con il comando cfgclear (come molti tutorial insegnano).

Pertanto ci sarà molto utile il seguente script, progettato proprio a questo scopo:

#!/bin/bash
#
# usage: create_FOS_config.sh
#
#
awk -F. '/^alias/{ print "alicreate \""substr($2,1, index($2,":") - 1)"\", \"" substr($2, index($2,":") + 1)"\"" }' $1 | sort -k2
awk -F. '/^zone/ { print "zonecreate \""substr($2,1, index($2,":") - 1)"\", \"" substr($2, index($2,":") + 1)"\"" }' $1 | sort -k2
awk -F. '/^cfg/ { print "cfgcreate \""substr($2,1, index($2,":") - 1)"\", \"" substr($2, index($2,":") + 1)"\"" }' $1

L’ordinamento impostato nell’elenco degli alias e delle zone potrà essere utile per un esame manuale del contenuto di questa parte della configurazione una volta caricata.

Spero possa essere utile.

articolo_itunes

Esportare una playlist iTunes su chiavetta USB

Per tutti coloro che utilizzano al meglio (e felicemente) iTunes e la sua libreria organizzata e consolidata, è difficile pensare ad una organizzazione del materiale audio senza iTunes.

Molti però tendono ancora a gestire i file multimediali in maniera autonoma, specie chi di questa gestione automatizzata, comoda ed integrata non ha mai sentito parlare (non è nel loro DNA, diciamo). Va bé! ci sono forme alternative di pensiero che dicono che noi utenti Apple invero siamo indottrinati; fate come volete. Tant’é. Noi viviamo sereni.

Però il problema nasce quando occorre integrarsi con il mondo a “gestione manuale”.
Se qualcuno ci chiede una copia della nostra playlist (per ascoltare le nostre canzoni autoprodotte rigorosamente con il nostro GarageBand !!! ovviamente !!! ;-), potrebbe essere difficile raccogliere in giro per la cartella “iTunes Music” tutti i file e copiarli diciamo su una chiavetta USB.

Ecco che ci viene incontro un piccolo frammento di codice AppleScript da me creato in pochi minuti (potenza del linguaggio):

tell application "iTunes"
    repeat with aTrack in (tracks of user playlist "Prova")
        set theAlias to (get location of aTrack)
        set theAlbum to (get album of aTrack).
        tell application "Finder"
        try
                duplicate theAlias to folder "Macintosh HD:Users:andrea:Desktop:Prova"
        on error number errn
            if errn = -15267 then
                make new folder at folder "Macintosh HD:Users:andrea:Desktop:Prova" with properties {name:theAlbum}
                duplicate theAlias to folder ("Macintosh HD:Users:andrea:Desktop:Prova:" & theAlbum)
            end if
        end try
        end tell
    end repeat
end tell

Rozzamente (non abbiamo prodotto una interfaccia per richiedere sorgente, ossia playlist, e destinazione, ossia un folder) ma semplicemente questo script cercherà per noi tutti gli originali indicati da una playlist e li copierà in un folder da noi indicato: qualora il file dovesse collidere con uno già presente (ricordiamo che i nomi di file gestiti con libreria organizzata da iTunes sono fatti del numero di traccia e del titolo, quindi possono sussistere casi di omonimia in assenza di album) allora crea un subfolder con il titolo dell’album.

Potrete modificarlo a piacimento, magari creando direttamente la gerarchia di folder che più vi aggrada, introducendo altre meta informazioni, se necessario.

Buon ascolto!

tux+ibm

Linux e appliances

Mi è recentemente capitato di configurare degli switch FC IBM, modello 2498_24.
Nel verificare alcuni parametri di versione per la configurazione che mi accingevo a fare mi è andato l’occhio su un numero alquanto sospetto:

SAN:root> version
Kernel:     2.6.14.2
Fabric OS:  v6.4.2a
Made on:    Mon Jul 18 22:27:42 2011
Flash:        Tue Jan 3 17:18:42 2012
BootProm:   1.0.9

2.6.14 … interessante, mi dico. E mentre la parola Linux mi sovviene alla mente, mi ritornano certe polemiche mosse da certi “guru” sulla presunta pericolosità di adottare sistemi Linux nei comparti del networking e della sicurezza, ed è più sicuro affidarsi ad appliance da migliaia di euro (senza considerare licenze d’uso, upgrade, assistenze, ecc).
Ed eccomene una sotto mano, di queste appliance, e per di più costruita da “mamma IBM”, e chi ti trovo? Un bel sistema Linux con kernel 2.6: certo, customizzato, certo con tantissimi comandi ad hoc (vedi cosiddetto FOS) per il ruolo di questo dispositivo. Ma in finale sempre un kernel Linux.

Pertanto rido di quanti credano che comprare è meglio che realizzare in economia a partire da un semplice Linux box, specialmente per quei servizi che sono già completi e “di serie” quali un netfilter o altri elementi di livello kernel. Il resto sono pezzi di ferro da aggiungere tutto intorno.

Tanto per la cronaca; ecco altre dimostrazioni che un IBM 2498_24 è a tutti gli effetti un Linux box, customizzato e ridotto al minimo necessario.

SAN:root> uname -r
2.6.14.2
SAN:root> uname -a
Linux SAN 2.6.14.2 #1 Sat Jul 16 10:19:20 PDT 2011 ppc unknown
SAN:root> ls -l /
total 96
drwxr-xr-x   2 root     sys          4096 Jan  3  2012 bin/
drwxr-xr-x   2 root     sys          4096 Jan  3  2012 boot/
drwxr-xr-x   2 root     root         4096 Jan  3  2012 config/
drwxrwxrwx  41 root     sys          4096 Jan  3  2012 core_files/
drwxr-xr-x   3 root     sys          4096 Nov 13 12:28 dev/
lrwxrwxrwx   1 root     root           10 Nov 13 12:28 diag -> /proc/diag/
drwxr-xr-x  17 root     sys          4096 Jan 21 13:02 etc/
drwxr-xr-x   2 root     sys          4096 Jul 18  2011 export/
drwxr-xr-x  18 root     sys          4096 Nov 13 12:28 fabos/
drwxr-xr-x   2 root     sys          4096 Jul 18  2011 import/
drwxr-xr-x   2 root     sys          4096 Jul 18  2011 initrd/
drwxr-xr-x   6 root     sys          4096 Jan  3  2012 lib/
lrwxrwxrwx   1 root     sys            11 Jan  3  2012 libexec -> usr/libexec/
drwx------   2 root     root        16384 Jan  3  2012 lost+found/
drwxr-xr-x  24 root     root         4096 Jan  3  2012 mnt/
dr-xr-xr-x 214 root     root            0 Jan  1  1970 proc/
drwxr-x---   4 root     sys          4096 Jan  3  2012 root/
drwxr-xr-x   2 root     sys          4096 Jan  3  2012 sbin/
lrwxrwxrwx   1 root     sys             9 Jan  3  2012 share -> usr/share/
drwxr-xr-x   2 root     root         4096 Jan  3  2012 standby_sbin/
drwxrwxrwx   3 root     sys          4096 Jan  3  2012 support_files/
drwxr-xr-x   2 root     sys          4096 Jul 18  2011 tftpboot/
drwxrwxrwt   5 root     root            0 Jan 23 14:26 tmp/
drwxr-xr-x   2 root     sys          4096 Jul 18  2011 users/
drwxr-xr-x  11 root     sys          4096 Jan  3  2012 usr/
drwxr-xr-x  11 root     sys          4096 Jan  3  2012 var/

E vogliamo parlare di un

tail /var/log/nslog.txt
?

Va bene. Ogni altra considerazione è puramente superflua.

Il seguente articolo è anche disponibile nel seguente Blog

nokia-lumia-800

Windows Phone (7.8): sincronizzare contatti e calendari Google

Se anche voi siete in possesso di uno smartphone con sistema operativo Windows phone ma non riuscite ad importare i contatti e i calendari di google, vuol dire che, come me, avete uno smartphone che non supporta Windows 8, e a cui la Microsoft ha deciso di dare un contentino facendo un aggiornamento a Windows 7.8 (release 7.10.8862.144) che dovrebbe correggere alcuni errori riscontrati da alcuni utenti. Gli smartphone interessati sono i seguenti:

  • Nokia Lumia 900
  • Nokia Lumia 800
  • Nokia Lumia 710
  • Nokia Lumia 610

Il problema è che Google Sync sarà disponibile solo per Windows 8, e chi è in possesso di uno degli smartphone citati precedentemente, in teoria, non potrà importare i contatti e i calendari del proprio account Google.
Cercando sul sito www.windowsphone.com sulle FAQ si ottiene la seguente risposta:

Gli account di Google configurati per la prima volta su telefoni con l’ultima versione del software Windows Phone 7 (aggiornamento 7.10.8862.144) sincronizzano solo le e-mail. I contatti e i calendari non si sincronizzano.

Queste limitazioni ti riguardano se:

  • hai un telefono con l’ultima versione del software Windows Phone 7 e configuri il tuo account di Google per la prima volta;
  • nel tuo telefono c’è l’ultima versione del software e hai reimpostato il telefono o eliminato dal telefono il tuo account di Google e ora vuoi riconfigurare l’account.

MA NON DISPERATE… UN MODO PER SINCRONIZZARLI C’E’ e non c’è bisogno di alcuna app esterna; quella che segue è una semplice guida:

  1. Andate su Impostazioni –> e-mail e account e cliccate su aggiungi un account;
  2. Scegliete Outlook, inserite le vostre credenziali dell’account Google e cliccate su Accedi;
  3. Non vi spaventate se vi da errore, e cliccate nuovamente su Accedi; dopo la seconda volta che vi da errore uscirà una schermata e dovrete cliccare sul pulsante Avanzate, e vi verrà chiesto di inserire il dominio e il server;
  4. Inserire come dominio google e come server m.google.com; se nel nome utente viene eliminata la parte  finale dell’e-mail (@gmail.com) reinseritela e confermate.
  5. A questo punto il vostro account si sincronizzerà e potrete notare con immensa soddisfazione che importerà anche i contatti!

A questo punto il più è fatto… non vi resta che cliccare sull’account appena creato e rinominarlo da Outlook a Gmail (o qualunque altra cosa volete) e andare in rubrica per vedere i contatti.

N.B. Se non vedete i contatti in rubrica andate nelle impostazioni e nella schermata filtra contatti dovete spuntare l’indirizzo e-mail appena creato.

N.B.2 Se vedete i contatti ma non i numeri di telefono corrispondenti, assicuratevi che i vostri Google contacts abbiano una categoria ben definita (es. Cellulare, Casa, ecc.) altrimenti non li vedrete!

 Infine per quanto riguarda i calendari, quello personale lo sincronizza di default, mentre per quelli condivisi ancora non ne sono venuto a capo, ma spero di riuscirci a breve.

logo11w

Google to Acquire Nest

Abbiamo sentito parlare di Nest nei mesi scorsi, soprattutto per le mirabolanti novità che caratterizzano il loro famosissimo termostato intelligente, un pezzo di domotica che ogni buon Nerd vorrebbe avere in casa propria (e confesso che sto per ordinarne uno perché è troppo figo).

Oggi la notizia che Google ha acquisito la società per la modica cifra di 3.8 miliardi di euro in contanti. Avevo qualche dubbio sul funzionamento dell’aggeggio ma, visti gli esborsi dell’ultim’ora, tutti i dubbi sono svaniti…

 

MOUNTAIN VIEW, CA – JANUARY 13, 2014 — Google Inc. NASDAQ: GOOG announced today that it has entered into an agreement to buy Nest Labs, Inc. for $3.2 billion in cash.

Nest’s mission is to reinvent unloved but important devices in the home such as thermostats and smoke alarms. Since its launch in 2011, the Nest Learning Thermostat has been a consistent best seller–and the recently launched Protect Smoke + CO Alarm has had rave reviews.

Larry Page, CEO of Google, said: “Nest’s founders, Tony Fadell and Matt Rogers, have built a tremendous team that we are excited to welcome into the Google family. They’re already delivering amazing products you can buy right now–thermostats that save energy and smoke/CO alarms that can help keep your family safe. We are excited to bring great experiences to more homes in more countries and fulfill their dreams!”

Tony Fadell, CEO of Nest, said: “We’re thrilled to join Google. With their support, Nest will be even better placed to build simple, thoughtful devices that make life easier at home, and that have a positive impact on the world.”

Nest will continue to operate under the leadership of Tony Fadell and with its own distinct brand identity. The transaction is subject to customary closing conditions, including the receipt of regulatory approvals in the US. It is expected to close in the next few months.

viaGoogle to Acquire Nest – Investor Relations – Google.

tunnel-data

Hadoop e “Big Data”

Si dice che il 2014 sarà l’anno del Big Data… qualunque cosa questo significhi…

HadoopBig Data è una parola che va molto di moda, anche se ognuno di noi ha un’idea diversa sul suo significato. Analizzare “big data” significa estrarre conoscenza da grandi moli di dati, come possono essere i dati generati dal crawling di una gran quantità di siti internet, dai post nei social network di un gruppo cospicuo di persone, dalle variazioni di valore delle azioni in borsa nel corso degli anni per un numero consistente di titoli.

Il problema nasce proprio da qui… quanto grande ? che significa cospicuo ? 1 terabyte può essere considerato “big data” ? e 10 terabyte ?

Continua a leggere

big_data

Raccolta differenziata di foto digitali

apple ios
Ormai ognuno porta con sé una potente fotocamera integrata nel proprio telefono, con la quale si prendono appunti, si condividono situazioni divertenti, si lavora. Inoltre, applicazioni come Whatsapp rendono ancora più frequente l’uso della fotocamera e, soprattutto, rendono ancora più affollata la memoria del telefono con le innumerevoli foto (spesso ripetute) che ci inviano i nostri amici.

L’operazione di backup, che già normalmente richiede delle noiose attività di sincronizzazione, diventa ancora più odiosa quando ci rendiamo conto che:

  1. non possiamo sincronizzare su un computer qualsiasi, ma abbiamo bisogno di quello sul quale abbiamo predisposto/autorizzato il software;
  2. abbiamo lasciato a casa il disco esterno dove archiviamo le nostre foto, quindi dobbiamo rimandare a quando avremo tutto l’occorrente;
  3. nella migliore delle ipotesi, ci rendiamo conto che almeno il 70% della memoria è costituita da foto di cui non ce ne può fregare di meno, però come facciamo a isolarle da quelle realmente scattate dal nostro telefono?

Ci sono tanti software che effettuano selezioni e organizzazioni del software, ma un prodotto freeware e uno open source ci aiutano a fare ordine in maniera gratuita: ifunbox per iPhone e l’estensione Perl “exiftool“, che ci permette di leggere i metadati contenuti nelle nostre foto.

Il primo strumento ci consente di salvare il “rullino fotografico” su una qualsiasi memoria senza particolari autorizzazioni o sincronizzazioni. Il secondo strumento, invece, ci permette di discriminare le foto in base ai dati EXIF contenuti al loro interno, basandoci sul concetto che le foto pervenute tramite App non contengono il marchio Apple (ragionamento analogo per la controparte Android, seppur non verificato).

A questo punto, basta eseguire un semplice script per raccogliere i dati omogenei e archiviarli secondo la loro reale natura.

#!/bin/bash

# Find and collect in the Apple dir what Apple did (or who you want)
exiftool '-Directory<Make' -if '$Make eq "Apple"' -r *.JPG
exiftool '-Directory<Make-ita' -if '$Make-ita eq "Apple"' -r *.MOV

# PNGs are being moved if any
if [ $(ls -1 *.PNG 2>/dev/null | wc -l) != 0 ]; then
mkdir -p Screenshot
mv *.PNG ./Screenshot
fi

# All the other stuff remains where it was
echo "Job done."

In tal modo avremo una cartella Apple (uguale al valore della proprietà Exif.Image.Make, ossia del costruttore dell’apparecchiatura) dove confluiranno foto e video creati dalla fotocamera, una cartella Screenshot con tutti i nostri file PNG, e tutto il resto transitato via App e via rete, rimarrà nella cartella da cui è stato lanciato lo script.

Infine, per ottimizzare ulteriormente la cartella contenente le foto ricevute e individuare, quindi, tutti i file immagine duplicati, anche di dimensioni diverse, suggerisco l’impiego di software open source (es: DupeGuru), facilmente reperibili in rete.