Ubuntu 9.10 e Apt-get update invalid signature

16/11/2009

Dopo aver effettuato l’upgrade di versione a Ubuntu 9.10 Karmic Koala, ho iniziato ad avere il seguente errore durante la procedura di update:

W: GPG error: http://it.archive.ubuntu.com karmic-updates Release:
The following signatures were invalid: BADSIG 40976EAF437D05B5 Ubuntu Archive
Automatic Signing Key

Per risolvere il problema e’ sufficiente eseguire i seguenti comandi:

$ sudo apt-get clean
$ cd /var/lib/apt
$ sudo mv lists lists.old
$ sudo mkdir -p lists/partial
$ sudo apt-get update

A questo punto l’update dovrebbe tornare ad essere pulito :)

Cisco VPN Client su Kernel 2.6.31

02/11/2009

Dopo il rilascio nuova Ubuntu Karmic Koala 9.10, ho deciso di salutare la vecchia Jaunty.

Effettuato il backup dei dati (la prudenza non e’ mai troppa), ho eseguito l’upgrade di versione e, tutto contento, ho iniziato a “smandruppare” con il nuovo giocattolo.

Tutto bene fino a questa mattina, quando, una volta arrivato in ufficio, ho provato a ricompilare il Cisco VPN client per il nuovo kernel 2.6.31. Disastro!

Stopped: /etc/init.d/vpnclient_init (VPN init script)
Making module
make -C /lib/modules/2.6.31-14-generic/build SUBDIRS=/home/andrea/vpnclient modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.31-14-generic'
CC [M]  /home/andrea/vpnclient/linuxcniapi.o
CC [M]  /home/andrea/vpnclient/frag.o
CC [M]  /home/andrea/vpnclient/IPSecDrvOS_linux.o
CC [M]  /home/andrea/vpnclient/interceptor.o
/home/andrea/vpnclient/interceptor.c: In function ‘interceptor_init’:
/home/andrea/vpnclient/interceptor.c:132: error: ‘struct net_device’ has no member
named ‘hard_start_xmit’
/home/andrea/vpnclient/interceptor.c:133: error: ‘struct net_device’ has no member
named ‘get_stats’
/home/andrea/vpnclient/interceptor.c:134: error: ‘struct net_device’ has no member
named ‘do_ioctl’
/home/andrea/vpnclient/interceptor.c: In function ‘add_netdev’:
/home/andrea/vpnclient/interceptor.c:271: error: ‘struct net_device’ has no member
named ‘hard_start_xmit’
/home/andrea/vpnclient/interceptor.c:272: error: ‘struct net_device’ has no member
named ‘hard_start_xmit’
/home/andrea/vpnclient/interceptor.c: In function ‘remove_netdev’:
/home/andrea/vpnclient/interceptor.c:294: error: ‘struct net_device’ has no member
named ‘hard_start_xmit’
make[2]: *** [/home/andrea/vpnclient/interceptor.o] Error 1
make[1]: *** [_module_/home/andrea/vpnclient] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.31-14-generic'
make: *** [default] Error 2

Momento di panico, avevo assolutamente bisogno della VPN.

Fortunatamente il vecchio caro Google e’ sempre pronto a dare una mano, e il momento di panico si e’ spento… appunto in un momento :)

Il merito va a tal Pál Dorogi, il quale ha provato la nuova Ubuntu 9.10 sin dalla release Alpha, e che ha sviluppato una piccolissima patch da applicare al Cisco VPN Client per permetterne la compilazione con il nuovo kernel 2.6.31.

Ecco il contenuto della patch:

--- vpnclient.ori/interceptor.c 2009-05-21 01:16:34.000000000 +1200
+++ vpnclient/interceptor.c 2009-09-06 22:02:39.000000000 +1200
@@ -116,6 +116,14 @@
};
#endif

+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
+static struct net_device_ops interceptor_netdev_ops = {
+    .ndo_start_xmit = interceptor_tx,
+    .ndo_do_ioctl   = interceptor_ioctl,
+    .ndo_get_stats  = interceptor_stats,
+};
+#endif
+
static struct notifier_block interceptor_notifier = {
.notifier_call = handle_netdev_event,
};
@@ -129,9 +137,13 @@
{
ether_setup(dev);

+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
+    dev->netdev_ops = &interceptor_netdev_ops;
+#else
dev->hard_start_xmit = interceptor_tx;
dev->get_stats = interceptor_stats;
dev->do_ioctl = interceptor_ioctl;
+#endif

dev->mtu = ETH_DATA_LEN-MTU_REDUCTION;
kernel_memcpy(dev->dev_addr, interceptor_eth_addr,ETH_ALEN);
@@ -242,6 +254,9 @@
{
int rc = -1;
int i = 0;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
+    struct net_device_ops * tmp_ops;
+#endif

if (!supported_device(dev))
{
@@ -268,8 +283,14 @@
Bindings[i].original_mtu = dev->mtu;

/*replace the original send function with our send function */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
+    Bindings[i].InjectSend = dev->netdev_ops->ndo_start_xmit;
+    tmp_ops = (struct net_device_ops *) dev->netdev_ops;
+    tmp_ops->ndo_start_xmit = replacement_dev_xmit;
+#else
Bindings[i].InjectSend = dev->hard_start_xmit;
dev->hard_start_xmit = replacement_dev_xmit;
+#endif

/*copy in the ip packet handler function and packet type struct */
Bindings[i].InjectReceive = original_ip_handler.orig_handler_func;
@@ -285,13 +306,21 @@
{
int rc = -1;
BINDING *b;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
+    struct net_device_ops * tmp_ops;
+#endif

b = getbindingbydev(dev);

if (b)
{
rc = 0;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
+        tmp_ops = (struct net_device_ops *) dev->netdev_ops;
+        tmp_ops->ndo_start_xmit = b->InjectSend;
+#else
dev->hard_start_xmit = b->InjectSend;
+#endif
kernel_memset(b, 0, sizeof(BINDING));
}
else

Basta creare un file (es. vpnclient-2.6.31.diff) all’interno del path dei sorgenti del Cisco VPN Client ed incollare le righe precedenti all’interno dello stesso.

In seguito e’ sufficiente digitare:

$ patch < vpnclient-2.6.31.diff
patching file interceptor.c

E procedere con la reinstallazione del client:

$ sudo ./vpn_install

A questo punto il gioco e’ fatto :)

Per correttezza, potete trovare l’articolo originale qui.

PS3 Media Server: streaming video per Play Station 3

17/06/2009

E rieccomi dopo un piccolo periodo di pausa, del resto avevo avvertito della potenziale discontinuita’ dei miei post :)

Un paio di mesi fa ho acquistato finalmente una Play Station 3 da usare prettamente come lettore Blue Ray (ad oggi ancora non ci ho inserito un singolo gioco) e, dopo qualche tempo passato a godermi i film in alta definizione, ho deciso di cercare qualcosa per vedere i cari vecchi DivX.

Senza troppa fatica ho trovato un software in Java UPnP compilant chiamato PS3 Media Server.

Il software in questione e’ ricco di funzionalita’, prima di tutto gira su tutte le piattaforme ormai piu’ diffuse quali Windows, Linux e Mac OS. Non richiede quasi alcun tipo di configurazione, non richiede l’installazione di codex e plugin.

PS3 Media Server esegue una transcodifica realtime dei file e, con mio grande stupore, permette anche lo streaming dei formati MKV.

Ovviamente, piu’ alta e’ la qualita’ video dei filmati, maggiore sara’ la potenza di calcolo richiesta dal vostro processore (e’ anche presente il supporto sperimentale per processori a core multiplo). Per i file ad alta definizione e’ anche consigliato avere una rete Gigabit per riuscire a gestire il pesante flusso di dati che deve essere trasferito tra il PC e la PS3.

Di seguito un po’ di feature tratte direttamente dal sito del progetto:

  • Ready to launch and play. No codec packs to install. No folder configuration and pre-parsing or this kind of annoying thing. All your folders are directly browsed by the PS3, there’s an automatic refresh also.
  • Real-time video transcoding of MKV/FLV/OGM/AVI, etc.
  • Direct streaming of DTS / DTS-HD core to the receiver
  • Remux H264/MPEG2 video and all audio tracks to AC3/DTS/LPCM in real time with tsMuxer when H264 is PS3/Level4.1 compliant
  • Full seeking support when transcoding
  • DVD ISOs images / VIDEO_TS Folder transcoder
  • OGG/FLAC/MPC/APE audio transcoding
  • Thumbnail generation for Videos
  • You can choose with a virtual folder system your audio/subtitle language on the PS3!
  • Simple streaming of formats PS3 natively supports: MP3/JPG/PNG/GIF/TIFF, all kind of videos (AVI, MP4, TS, M2TS, MPEG)
  • Display camera RAWs thumbnails (Canon / Nikon, etc.)
  • ZIP/RAR files as browsable folders
  • Support for pictures based feeds, such as Flickr and Picasaweb
  • Internet TV / Web Radio support with VLC, MEncoder or MPlayer
  • Podcasts audio/ Video feeds support
  • Basic Xbox360 support
  • FLAC 96kHz/24bits/5.1 support
  • Only: DVR-MS remuxer and AviSynth alternative transcoder support

E finalmente ecco il link alla pagina del progetto: http://code.google.com/p/ps3mediaserver/

Pidgin + SIPE: Office Communicator su Ubuntu

24/03/2009

pidginSicuramente Office Communicator non e’ uno degli strumenti piu’ famosi di casa Microsoft, ma e’ molto utilizzato all’interno delle aziende come messenger intranet.

Al momento, l’unica buona implementazione del supporto di tale protocollo, e’ disponibile esclusivamente con Pidgin e con l’ausilio di un plugin chiamato SIPE. Sfortunatamente la versione di SIPE inclusa nei repository di Ubuntu non supporta connessioni TLS/SSL, ovvero quelle piu’ comunemente utilizzate al giorno d’oggi.

Per ovviare a tale problema e’ quindi necessario provvedere a compilare manualmente l’ultima release di SIPE che supporta anche i nuovi protocolli su SSL.

L’installazione di Pidgin e’ a dir poco elementare, sara’ sufficiente digitare:

$ sudo apt-get install pidgin

Di seguito gli step da seguire per l’installazione del plugin:

  1. Scaricare il plugin dal sito ufficiale di SIPE.
  2. Lanciare il seguente comando per installare le librerie necessare per la compilazione dei sorgenti:
    $ sudo apt-get install autotools-dev pkg-config libglib2.0-dev libgtk2.0-dev
    pidgin-dev libpurple-dev libtool intltool comerr-dev
  3. Esplodere il pacchetto scaricato con il seguente comando:
    $ tar xvfz pidgin-sipe-1.3.3.tar.gz
  4. Spostarsi all’interno del path del pacchetto e lanciare quanto segue:
    $ cd pidgin-sipe-1.3.3
    $ ./configure --prefix=/usr
    $ make
    $ sudo make install
  5. Terminata l’installazione non avrete che da avviare Pidgin e configurare i dati relativi al server della vostra intranet :)

Ubuntu Jaunty 9.04 e fglrx

21/03/2009

Questa sera mi sono convinto ad effettuare il passaggio da Ubuntu Intrepid 8.10 ad Ubuntu Jaunty 9.04, attualmente ancora release alpha (quindi decisamente lontana dall’essere esente da bug). Per effettuare l’upgrade alla versione devel e’ stato sufficiente digitare il seguente comando:

$ update-manager -d

Tale comando avviera’ il gestore dei pacchetti che ci chiedera’ conferma per procedere al passaggio di versione.

L’operazione di upgrade richiede del tempo, dipende dalla banda e dalla potenza di calcolo che si hanno a disposizione. I pacchetti da scaricare sono oltre un migliaio, con la mia macchina ho eseguito l’upgrade in circa 40 minuti.

L’unico vero intoppo l’ho riscontrato (fino ad ora) al primo reboot. A quanto pare i driver proprietari ATI per questa nuova release non girano esattamente in modo brillante, il tutto mi viene presto confermato dal fatto che Xorg si freeza allo startup che mi costringe ad un reboot con il kernel di recovery.

Dopo qualche tentativo di configurazione, l’unico workaround che mi ha permesso di ripristinare il funzionamento di X e’ stato la rimozione dei driver fglrx e la modifica del file /etc/X11/xorg.conf.

Per fare cio’ e’ stato necessario procedere con i seguenti comandi:

# apt-get remove --purge xorg-driver-fglrx

Visto che, con i precedenti tentativi di ripristino, avevo “insozzato” il file xorg.conf, sono stato costretto a ripristinarlo alla versione originale (precedente all’upgrade). Fortuna ha voluto che la procedura di upgrade abbia automaticamente backuppato il vecchio file rinominandolo in /etc/X11/xorg.conf.dist-upgrade-<timestamp>.

Ho quindi lanciato un:

# cd /etc/X11
# cp xorg.conf.dist-upgrade-<timestamp> xorg.conf

Fatto questo, e’ stato necessario anche editarlo per rimuovere la vecchia stringa contenente il driver fglrx:

Section "Device"
	Identifier  "Configured Video Device"
	Driver      "fglrx"
EndSection

e sostituirla con la seguente:

Section "Device"
	Identifier	"Configured Video Device"
	Option		"radeon"		"true"
EndSection

Successivamente e’  bastato restartare con il kernel di default per tornare ad utilizzare la mia cara Ubuntu :-)

DMS (Document Management System) per Linux

19/03/2009

Quando ho iniziato la ricerca di un buon DMS free per Linux non avrei mai immaginato di fare un salto in un tale buco nero. A quanto pare non ci sono in giro brillanti soluzioni per il Document Management su piattaforma Linux.

Sono passati ormai un paio di giorni da quando ho iniziato ad esaminare le possibilita’ di implementazione di tale strumento, devo dire che la situazione ancora non mi e’ del tutto chiara, eppure ho avuto modo di farmi alcune idee sulle possibili scelte.

Devo ammettere che la ricerca non e’ stata semplicissima, eppure alla fine sono giunto alle seguenti soluzioni:

  • Knowledge Tree: un DMS mastodontico (ben 280Mb di binario per l’installazione). Inizialmente non avevo prestato attenzione alla dimensione del file scaricato, solo successivamente (quando ho cercato di copiarlo sul server che lo avrebbe dovuto ospitare) mi sono reso conto di quanto fosse pesante! Mi sono deciso a continuare con la copia e ad avviare l’installazione. Il processo di installazione e’ molto semplice, e’ sufficente dare permessi di esecuzione al binario e lanciare l’installer che dara’ il via ad una serie di domande che guideranno l’utente durante l’installazione del tool.
    E’ proprio qui che avviene l’illuminazione, un po’ come l’ascensione del Buddha, che mi fa finalmente comprendere il motivo dei 280Mb di pacchetto. Tagliando corto, Knowledge Tree non contiene esclusivamente il DMS (come io mi sarei aspettato), ma non e’ altro che la pacchettizzazione di tutta la suite DMS + Apache + MySQL, probabilmente ottima per l’utente medio che necessita di un DMS, ma per i piu’ esperti non e’ certo una scelta felice. Imaggino (SPERO!!!) ci sia modo di avere semplicemente il lato DMS senza il resto del castello, ma l’installer non e’ durato sulla mia macchina abbastanza a lungo dal permettermi di scoprirlo ;)
  • OpenDocMan: a prima vista non molto affascinante, probabilmente perche’ gli screenshot presenti sul sito sono anche piuttosto datati, ma sicuramente tra i DMS piu’ snelli e funzionali che abbia visto in giro. Ha un sistema di gestione degli accessi e un sistema di tracking delle modifiche, insomma, proprio un bel prodottino.
  • WordPress: ebbene si’, qualcuno millanta di poter trasformare la famosa piattaforma dedicata al blogging in uno pseudo DMS. Si tratta di apportare sostanziali modifiche all’interfaccia di WordPress utilizzando determinati plugin quali WP-CMS e WordPress Download Monitor che andrebbero a rimuovere elementi del blog superflui ai fini della creazione di un DMS e aggiungendo la possibilita’ di gestire l’upload e il download dei file all’interno di una sorta di repository.
  • Wpwiki: altro non si tratta che di un WordPress “truccato” da Wiki. L’interfaccia si presenta eccezionalmente professionale, pulita e funzionale. Veramente bello! Unico neo, e piuttosto pesante e’ che no si tratta di una customizzazione free, Wpwiki e’ infatti acquistabile al prezzo di 30$, forse nemmeno un costo esagerato, ma difficile giudicare senza provarlo.
  • Drupal: non mi dilunghero’ particolarmente su Drupal, tool di indiscusso successo, ma anche qui, come WordPress, e’ necessario l’ausilio di specifici plugin per ottenere qualcosa di utilizzaile come pseudo-DMS.
  • Inenarrabili accrocchi composti dal mix dei precedenti con alcuni moduli di apache.

Insomma, capire in che direzione andare e’ un’esperienza alquanto traumatica, soprattutto se (e qui ho peccato di superficialita’) si e’ partiti con un’idea non ben definita del che cosa si voglia fare, in che modo e con quali strumenti.

La lista appena presentata non e’ certo completa, mancano all’appello altri DMS che ho scartato a priori per eccessiva incompatibilita’ con le mie esigenze.

Sarei piu’ che felice di ricevere feedback in merito a quanto elecanto sopra, in particolare sarei interessato a conoscere l’opinione di qualcuno che abbia potuto provare Wpwiki.

Floola 4.9 su Ubuntu 8.10

19/03/2009

Dopo averlo provato su Windows e per lunghissimo tempo anche su MacOS X, finalmente ho deciso di installare Floola anche sulla mia Ubuntu.

L’installazione e’ veramente elementare, ma c’e’ un piccolo neo che potrebbe non risultare cosi’ palesemente facile da risolvere per i nuovi utilizzatori di Ubuntu.

L’installazione prevedere i seguenti step:

  1. Download dell’ultima release (al momento la 4.9) di Floola dal sito ufficiale: http://www.floola.com/modules/wiwimod/index.php?page=download_linux
  2. Installazione delle libnotify utilizzando il seguente comando:
    sudo apt-get install libnotify-bin
  3. A questo punto il sito non riporta altre istruzioni, in realta’, un tentativo di esecuzione dara’ il seguente output:
    ./Floola: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory

    Cio’ e’ dovuto al fatto che Ubuntu 8.10 ha installate le libstdc++.so.6, per risolvere il problema sara’ sufficiente digiare il seguente comando:

    sudo apt-get install libstdc++5

Eeebox B202: si gonfiano i prezzi, ma non l’hardware

10/03/2009

Stavo valutando la possibilita’ di acquistare uno di questi giocattolini in attesa dell’Asus D200. Non mi mettero’ a parlare del fatto che trovare un Eeebox in un centro commerciale sia ormai impossibile, nemmeno nei negozi specializzati di elettrodomestici o in quelli di informatica, dove saranno finiti tutti gli Eeebox?

Ho effettuato delle ricerche tra le pagine dei vari e-shop dei centri commerciali e ho notato qualcosa che mi ha lasciato alquanto disgustato.

Alcuni di questi negozi online avevano iniziato a vendere l’Eeebox B202 con Windows XP, che aveva originariamente un prezzo di 259/269 euro, a ben 299 euro. Immediatamente ho pensato ad un aggiornamento hardware per giustificare questo improvviso aumento dei prezzi. Fortunatamente, uno di questi siti aveva (ha) in listino sia un Eeebox da 269 euro, sia uno da 299. E’ bastato semplicemente utilizzare il tipico pulsante per il confronto dei prodotti per realizzare che effettivamente l’hardware era esattamente lo stesso. A quel punto uno sguardo impregnato di perplessita’ si e’ spalmato sulla mia faccia.

Dopo una seconda occhiata ho finalmente realizzato…

L’Eeebox B202 da 269 euro improvvisamente non montava piu’ Windows XP ma Linux! E… ORRORE… quello con Windows XP ora costava 299 euro!

A rigor di logica, se l’Eeebox con Windows XP costava 269 euro, quello con con Linux avrebbe dovuto esordire, se la matematica non e’ un’opinione (e inizio a non esserne piu’ molto convinto), ad un costo di 219 euro (costo della licenza di Windows).

In conclusione, ad oggi esistono 2 modelli di Eeebox B202:

  • EeeBOX ASUS B202: che monta Linux e costa 269 euro.
  • DT EeeBOX ASUS B202: che monta Windows XP e costa 299 euro.

Ora, non so se questa distinzione sia sempre esistita (almeno nei nomi), ma personalmente ho speso 2 mesi a guardare Eeebox B202 con Windows XP e sono assolutamente certo che il prezzo fino ad un mese fa fosse di 269 euro.

Spero che qualcuno possa smentire tutto questo e provare ancora una volta che con la testa non ci sto troppo.

Detto questo, credo che andro’ direttamente verso un B204, a condizione di riuscire a trovarlo :)

Spotify: security alert

04/03/2009

logoPer chi non lo sapesse, Spotify e’ un servizio di streaming musicale on-demand nato non molto tempo fa in Svezia. Tale servizio permette di ascoltare i propri artisti musicali preferiti andando ad attingere i brani da un immenso database presente all’interno dei serve Spotify. Inizialmente la sottoscrizione di tale servizio era disponibile soltanto per l’utenza svedese (io al tempo mi ero fatto creare l’account da un amico in Svezia), ma successivamente e’ stata data la possibilita’ di registrazione (rigorosamente sotto invito) anche ad altre nazioni tra cui l’Italia.

Per motivi probabilmente legati ad accordi commerciali, a seconda della nazione in cui ci si trova, sono disponibili o meno determinati brani/album musicali.

A quanto pare qualcuno non ha perso troppo tempo e ha trovato una falla all’interno del protocollo utilizzato dal programma e l’ha sfruttato per exploitare i server di Spotify.

E’ cosi’ che mi sono visto recapitare questa letterina dritta nella mia mailbox:

Dear Spotify user,

Last week we were alerted to a group that managed to compromise
our protocols. After investigating we concluded that this group
had gained access to information that could allow testing of a
very large number of passwords, possibly finding the right one.
The information was exposed due to a bug that we discovered and
fixed on December 19th, 2008. Until last week we were unaware
that anyone had had access to our protocols to exploit it.

Along with passwords, registration information such as your email
address,birth date, gender, postal code and billing receipt
details were potentially exposed. Credit card numbers are not
stored by us and were not at risk. All payment data is handled
by a secure 3rd party provider.

If you have an account that was created on or before December 19th 2008,
we strongly suggest that you change your password and strongly
encourage you to change your passwords for any other services
where you use the same password.

When choosing your password we provide you with an indicator of
the password strength to help you choose a good one. To change
your password please visit your profile page on our website.

https://www.spotify.com/en/account/profile/

For the technically minded amongst you, the information that may
have been exposed when our protocols were compromised is the
password hashes. As stated, we never store passwords, and they
have never been sent over the Internet unencrypted, but the
combination of the bug and the group's reverse-engineering of
our encrypted streaming protocol may have given outsiders access
to individual hashes.

The hashes are salted, making attacks using rainbow tables unfeasible.
Short or otherwise bad passwords could still be vulnerable to
offline targeted brute-force or dictionary attacks on individual
users, but you could not run attacks in parallel. Also, there
has been no known breach of our internal systems. A complete user
database has not been leaked, but until December 19th, 2008 it was
possible to access the password hashes of individual users had
you reverse-engineered the Spotify protocol and knew the
username.

We are really sorry about this and hope you accept our apologies.
We're doubling our efforts to keep the systems secure in order
to prevent anything like this from happening again.

Regards,
The Spotify Team

Quindi se siete utenti Spotify e ancora non avete cambiato le vostre credenziali di accesso… beh, e’ il caso che vi sbrighiate :)

Rotazione file di log in Perl

03/03/2009

Oggi in ufficio mi sono trovato nella condizione di dover scrivere al volo uno script di rotazione per dei file di log. Non mi mettero’ ora a spiegare perche’ non ho usato logadm o logrotate, fatto e’ che, nel caso dovesse servire a qualcuno, ho deciso di postarlo:

#!/usr/bin/perl -w

use strict;
use File::Copy;

$| = 1;

if ($#ARGV != 2) {
    print "Usage: $0 <file> <size> <n>\n";
    exit;
}

my ($target, $size, $rotations) = (shift, shift, shift);

if (! -e $target) {
    die "Unable to find: $target";
}

if (-s $target >= $size) {
    print "[".scalar localtime()."] Rotating $target...\n";

    for (my $i = $rotations; $i > 0; $i--) {
        rename($target.'.'.($i-1), $target.'.'.$i) || warn "$!";
    }

    copy($target, $target.'.0') || warn "$!";
    system("cat /dev/null > $target");
}

Come argomenti prende:

  1. Il nome del file con relativo path assoluto (/var/log/foobar).
  2. La dimensione massima in byte entro la quale il file deve ruotare
  3. Il numero di rotazioni che si vuole mantenere sul sistema

Per esempio:

./rotate.pl /var/log/foobar 102400 5

Questo ruotera’ il file foobar ogni volta che la sua dimensione sara’ maggiore o uguale a 102400 byte (100Mb). Credo sia superfluo riportarne le diverse applicazioni all’interno di Crontab.
Spero possa tornare utile a qualcuno.


Follow

Get every new post delivered to your Inbox.