Oct 122014
 

Article di Mikko Ohtamaa già pubblicato sul suo blog

Spesso si vuole automatizzare qualcosa usando scripting di shell. In un mondo perfetto il vostro script funziona senza problemi, senza stancarsi, senza errori, e ci si può sedere nella vostra scrivania e sorseggiare un caffè.

31451391

Poi entriamo nel mondo reale: La rete è scollegata. Il DNS va male. I vostri hook HTTP e download vanno in stallo. La comunicazione tra processi si blocca. Effettivamente questo significa che, anche se lo script viene eseguito correttamente dal punto di sistema operativo questo non finirà il suo lavoro prima che voi terminiate la vostra tazza di caffè.

Continue reading »

flattr this!

Aug 252013
 

Recentemente ho installato una VPS con Debian 7 su Linode e come prima cosa ho voluto fare un aggiornamento del sistema, ma ho trovato un piccolo problema in questo:

# apt-get update
0% [Connecting to ftp.us.debian.org (2610:148:1f10:3::89)] [Connecting to security.debian.org (2607:ea00:101:3c0b:207:e9ff:fe00:e595)]
Get:1 http://ftp.us.debian.org wheezy Release.gpg [1,672 B]                                                                           
...
Get:15 http://security.debian.org wheezy/updates/main Translation-en [56.6 kB]
Fetched 16.3 MB in <strong>4min 0s</strong> (67.5 kB/s)                                                                                                                                     
Reading package lists... Done

Quindi 4 minuti per aggiornare solo i miei repository (ed avevo solo il valore predefiniti per una Debian 7 appena installata), questo è dovuto al fatto che le VPS di Linode sono IPv6 Ready e quindi i server di questa azienda tentano di connettersi a security.debian. org tramite il suo indirizzo IPv6 di default quando si esegue un apt-get update, che si traduce in dover aspettare un lungo timeout ogni volta che si tenta di scaricare gli aggiornamenti di qualsiasi tipo.

Ma per fortuna cambiare il sistema operativo in modo che apt-get utilizzi IPv4 non è così difficile.
Continue reading »

flattr this!

Jun 192013
 

A volte è utile scrivere uno script bash che esegue un qualcosa di simile a “fai questo lavoro, se è ancora in esecuzione dopo XX secondi uccidilo”, come implementarlo in un normale ambiente bash ?

Niente di più semplice: si può utilizzare il comando di shell timeout per raggiungere questo obiettivo.
Dalla sua pagina di informazioni:

timeout esegue il comando dato e lo uccide se è ancora in esecuzione dopo l’intervallo di tempo specificato

Vediamo come usarlo. Continue reading »

flattr this!