Archivio del mese di Giugno 2008

Linux SystemRescueCD 1.0.4

Annunci, Novità, Open Source Nessun commento »

È disponibile per il download la nuova versione di SystemRescueCd, la celebre distro live basata su Gentoo e pensata specificamente per il recupero dati e il partizionamento degli hard disk. La nuova versione rilasciata dal team francese è la 1.0.4, non introduce grandi novità rispetto alla release precedente ma promette di risolverne alcuni piccoli (ma molto fastidiosi) bug. Ecco in sintesi le novità:

Updated the default kernel to Linux 2.6.25.7 with Reiser4fs; fixed problem with Samba due to bad case in the UTF8 character set; fixed the LVM package - LVM 1.x support was broken; fixed the LVM service - now it starts after mdadm so that LVM on raid works; updated NTFS-3G to 1.2531 (NTFS full read-write support); updated the Btrfs file system support to 0.15 (kernel module and utilities); ability to boot Linux from an LVM disk; added option ‘root=auto’ to boot the first Linux system found on the hard drive; added ‘mhdd’ boot floppy disk image (low-level hard-disk diagnostic tool).

Potete consultare il changelog completo a questo indirizzo.

Upload FTP dal menù contestuale con RightLoad

Novità, Windows Nessun commento »

RightLoad è un programma gratuito per Microsoft Windows che aggiunge al menù contestuale alcune funzionalità molto interessanti: cliccando con il tasto destro sull’icona di un file è possibile avviarne il trasferimento FTP ad uno dei server preimpostati mediante l’apposita interfaccia di amministrazione.

Il software offre molte possibilità di configurazione:

  • Estensioni ASCII. Quando si sceglie “Auto” come modalità di trasferimento di default, tutti i file che hanno come estensione una di quelle elencate verranno trasferiti appunto in modalità “ascii”, mentre per tutti gli altri tipi di file verranno trasferiti in modalità “binary”.
  • Master Password. Grazie alla master password è possibile impostare una password che verrà utilizzata per effettuare il crittaggio delle informazioni di login al server, in maniera tale che queste non possano essere “sniffate” da eventuali malintenzionati.
  • Aggiornamenti automatici. Rightload verifica automaticamente la disponibilità di aggiornamenti collegandosi ai server del team che ne sta curando lo sviluppo.
  • Trasferimenti SFTP e HTTP. Nella sezione “Server Type” è possibile scegliere se utilizzare una normale sessione FTP o (scelta da me vivamente consigliata) una sessione SFTP (ovvero FTP via SSH). È inoltre possibile trasferire i file anche mediante upload HTTP.

Per qualsiasi altra informazione, trovate tutto sul sito Internet ufficiale del progetto (http://www.rightload.org).

Sensualità a Corte 4: l’ultima, folle puntata!

Comics, Varie, YouTube Nessun commento »

C’è crisi dappertutto… oppure, semplicemente…

Diario di bordo, Riflessi(oni) Nessun commento »

È un periodo denso di contraddizioni, quello che stiamo attraversando. Abbandonata l’illusione che la crisi economica fosse solo un accidente passeggero, molte tra le persone che conosco hanno cominciato a perdere i propri punti di riferimento.

Mi capita quasi ogni giorno di scambiare con qualcuno due parole sulle cause e i possibili sviluppi di questo bel pasticcio: mi accorgo così che si finisce sempre per ricondurre ogni cosa alle leggi del mercato, alla congiuntura mondiale, alle nuove economie emergenti. Quasi non fosse colpa anche nostra se il denaro che ancora riusciamo a metterci in tasca - magari con un po’ più di fatica - perde ogni giorno di valore.

A pochi viene in mente che sia venuto il momento di cambiare i nostri stili di vita, i nostri obbiettivi e anche i modi per realizzarli. Tutti guardano indietro, chi per bestemmiare un passato fatto di soli errori e chi per rimpiangerne i fasti. Ho sentito trentenni ricordare di come si stesse bene negli anni ottanta. Gente che aveva molto meno di vent’anni quando imperversavano Craxi - pace all’anima sua - Andreotti e Forlani. Gente che di quell’epoca non può che avere rimpianti, dal momento che a quel tempo la loro sola preoccupazione era che cosa indossare la mattina per fare bella figura con la tipa della classe accanto. Cosa più che legittima, quando si ha quell’età.

Ma chi ha ancora voglia di guardare avanti non si limita a sperare che le cose vadano meglio per poter essere assunto nuovamente a tempo indeterminato. Si domanda piuttosto: di che cosa ha bisogno questo mio tempo? Sono in grado di capire il mondo in cui vivo e trovarvi una collocazione migliore? Cosa so fare? Cosa devo imparare? Cosa devo imparare a fare?

È crisi dappertutto. Ma questo è per forza un male? Io dico di no…

Monitoraggio delle code di posta con Postfix

Open Source, Shell, Sistema, Tips & tricks Nessun commento »

Postfix è considerato da tempo uno tra i migliori MTA in circolazione. Scritto inizialmente da Wietse Zweitze Venema e rilasciato sotto IBM Public License, Postfix può vantare una solidità ed una facilità di interazione introvabili in altri demoni di posta SMTP.

La scelta di distribuire le sue funzionalità su diversi demoni - ognuno dei quali svolge una funzione specifica - e l’attribuzione di diritti minimi di esecuzione ad ognuno di essi, garantisce che un eventuale bug o exploit non possa compromettere l’intero MTA. Un solo processo deve essere eseguito con privilegi di root, tutti gli altri hanno diritti minimi e spesso un file di configurazione proprio.

Questa distribuzione di compiti si traduce anche nella disponibilità di diversi strumenti specificamente dedicati a svolgere funzioni di monitoraggio e di amministrazione dei processi generati da Postfix. Alcuni di questi strumenti sono parte integrante di Postfix, mentre altri costituiscono elementi accessori - spesso sviluppati da terze parti - che interagiscono con esso a vari livelli.

Il monitoraggio delle code di posta, ad esempio, può avvenire mediante il programma `mailq`:

# mailq
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
6CC39230001* 1389 Wed Jun 25 01:17:51 5tanya.wuhc@msa.hinet.net
test@dominio.it

Rimando i newbie al solito `man mailq` per le informazioni principali su come funziona il programma. Quello che segue è invece un esempio di come si possa utilizzare al meglio `mailq` per rimuovere la posta bloccata dallo spool locale:

# exim -Mg `mailq | grep frozen | awk '{ print $3 }'`

Il normale utilizzo di `mailq` può essere ostacolato dalla presenza di code di posta molto voluminose. In questi casi è bene ricorrere allo script `qshape` per avere una quadro chiaro su cosa abbia determinato l’accumulo di messaggi e quando sia accaduto:

$ qshape -s deferred | head
T 5 10 20 40 80 160 320 640 1280 1280+
TOTAL 1250 0 1 2 4 5 22 34 118 242 822
spammer123.com 462 0 1 0 1 1 3 7 15 53 381
zzfinder.com 64 0 0 0 0 0 1 0 0 4 59
socket4you.biz 53 0 0 0 0 0 0 0 0 0 53
junglex.com 36 0 0 0 0 0 1 3 7 15 10
myemessage.com 36 0 0 0 0 0 0 0 0 0 36
stock911.us 35 0 0 0 0 0 0 0 0 0 35
linuxassistance.it 33 0 0 0 0 0 0 0 0 0 33
agliardi.biz 29 0 0 0 0 0 0 0 0 3 26

Qui si vede come ci siano 1250 messaggi in coda per i quali è stato fatto almeno un tentativo di spedizione (deferred), di cui 462 sono indirizzati al dominio spammer123.com. Delle email inviate a questo dominio 1 è in coda per un periodo di tempo compreso fra 5 e 10 minuti, mentre 381 sono in attesa da più di 1280 minuti.

Il comando che segue serve invece per visualizzare le statistiche legate al numero di destinatari delle mail presenti nella coda “active” di Postfix:

qshape active | less

In questo modo siamo in grado di individuare in ogni momento eventuali “colli di bottiglia”, ovvero invii di posta elettronica anomali che si accumulano nella coda di Postfix degradandone nettamente le prestazioni. Una volta individuati simili processi, li si può debellare con l’ausilio del comando `postsuper`:

postsuper [-psv] [-c directory_file_conf] [-d][-h][-H][-r] [id_coda] [directory_coda]

Per eliminare, ad esempio, il messaggio con ID di coda 6CC39230001 (ovvero quello riportato nell’esempio fatto sopra) è sufficiente lanciare il comando:

# postsuper -d 6CC39230001

Se invece, a vostro rischio e pericolo, volete svuotare completamente le code di posta, potete sempre ricorrere al seguente comando:

# postsuper -d ALL deferred

Ma se mai doveste perdere messaggi di posta elettronica a causa dell’utilizzo di questo secondo esempio, non ve la prendete con me.

/sbin/telinit 0

Diario di bordo Nessun commento »

Mi sono preso un paio di giorni di ferie, per rimettermi in sesto e cercare di riprendermi da un periodo lavorativo molto, molto pesante.

Non strappatevi i capelli: sarò di nuovo tra voi a partire da martedì 24 giugno prossimo venturo.

Buone cose a tutti.

Evolution (Linux Commercial)

Varie, YouTube 1 commento »

Scansione ricorsiva di una directory con PHP

Open Source, PHP, Tips & tricks Nessun commento »

Ci sono script che dovresti sempre avere a portata di mano, perché finisce che ne hai bisogno nei momenti e nelle occasioni più impensabili. Questa function in PHP, ad esempio, mi ha risparmiato in molti casi un’inutile perdita di tempo: passandole come argomento una stringa che corrisponde al percorso completo da scandire, la function scan_directory_recursively restituisce un array contenente la struttura completa della directory specificata.

È possibile indicare, come secondo argomento opzionale, una estensione o una porzione di testo che non dovrà necessariamente comparire nel nome del file. Si tratta in pratica di un filtro per escludere una certa classe di risultati.

Ad esempio:

$dirs=scan_directory_recursively('/home/ivan/Tempo');

restituisce un array di tutte le directory e i file contenuti in /home/ivan/Tempo, mentre:

$dirs=scan_directory_recursively('/home/ivan/Tempo','.php');

restituisce un array di tutte le directory e i file contenuti in /home/ivan/Tempo ad eccezione dei file con estensione .php!

Non è opera mia, per questo motivo chiedo a chiunque ne faccia uso nei propri progetti di non rimuovere i riferimenti a lixlpixel, il sito Internet da cui provengono.

Ecco la function:

< ?php
// ------------ lixlpixel recursive PHP functions -------------
// scan_directory_recursively( directory to scan, filter )
// expects path to directory and optional an extension to filter
// of course PHP has to have the permissions to read the directory
// you specify and all files and folders inside this directory
// ------------------------------------------------------------
 
// to use this function to get all files and directories in an array, write:
// $filestructure = scan_directory_recursively('path/to/directory');
 
// to use this function to scan a directory and filter the results, write:
// $fileselection = scan_directory_recursively('directory', 'extension');
 
function scan_directory_recursively($directory, $filter=FALSE)
{
    // if the path has a slash at the end we remove it here
    if(substr($directory,-1) == '/')
    {
        $directory = substr($directory,0,-1);
    }
 
    // if the path is not valid or is not a directory ...
    if(!file_exists($directory) || !is_dir($directory))
    {
        // ... we return false and exit the function
        return FALSE;
 
    // ... else if the path is readable
    }elseif(is_readable($directory))
    {
        // we open the directory
        $directory_list = opendir($directory);
 
        // and scan through the items inside
        while (FALSE !== ($file = readdir($directory_list)))
        {
            // if the filepointer is not the current directory
            // or the parent directory
            if($file != '.' && $file != '..')
            {
                // we build the new path to scan
                $path = $directory.'/'.$file;
 
                // if the path is readable
                if(is_readable($path))
                {
                    // we split the new path by directories
                    $subdirectories = explode('/',$path);
 
                    // if the new path is a directory
                    if(is_dir($path))
                    {
                        // add the directory details to the file list
                        $directory_tree[] = array(
                            'path'    => $path,
                            'name'    => end($subdirectories),
                            'kind'    => 'directory',
 
                            // we scan the new path by calling this function
                            'content' => scan_directory_recursively($path, $filter));
 
                    // if the new path is a file
                    }elseif(is_file($path))
                    {
                        // get the file extension by taking everything after the last dot
                        $extension = end(explode('.',end($subdirectories)));
 
                        // if there is no filter set or the filter is set and matches
                        if($filter === FALSE || $filter == $extension)
                        {
                            // add the file details to the file list
                            $directory_tree[] = array(
                                'path'      => $path,
                                'name'      => end($subdirectories),
                                'extension' => $extension,
                                'size'      => filesize($path),
                                'kind'      => 'file');
                        }
                    }
                }
            }
        }
        // close the directory
        closedir($directory_list); 
 
        // return file list
        return $directory_tree;
 
    // if the path is not readable ...
    }else{
        // ... we return false
        return FALSE;    
    }
}
// ------------------------------------------------------------
 
?>

Per comodità vostra, ma anche mia, aggiungo qui una versione priva di commenti e pronta per il download:

Come installare Internet Explorer su Debian Etch

Debian, Open Source, Tips & tricks 1 commento »

Non mi stancherò mai di ripetere che con la release stabile di Debian si può fare tutto, ma proprio tutto quello che si fa normalmente con qualsiasi altra distribuzione meno conservativa. Per l’utilizzo quotidiano, per lo svolgimento delle proprie attività professionali o anche soltanto per il gioco, gran parte degli utenti Linux sembra preferire distribuzioni molto poco orientate alla sicurezza e alla stabilità solo per il fatto che queste vengono costantemente aggiornate all’ultimissima versione di ogni software.

Ho già descritto in un altro post come si possa trarre beneficio dal sistema dei backports per aggiornare i proprio programmi preferiti ad una versione più recente di quella inserita nel ramo stabile di Debian.

Debian Etch è però pronta ad accontentare anche ogni nostra naturale tentazione di veder girare le killer application di Microsoft sulla nostra Linux box. Prendiamo, ad esempio, il caso dell’odiatissimo e amatissimo browser web Internet Explorer. Per vederlo girare sulla nostra Debian Etch ci sono almeno due validissime soluzioni:

  1. la suite Crossover Linux (alias: CXLinux) di CodeWeavers
  2. lo script IEs4Linux di Sérgio Luís Lopes Júnior

La prima soluzione è a pagamento, ma costa davvero un’inezia rispetto a quanto offre:

CrossOver Linux allows you to install many popular Windows productivity applications, plugins and games in Linux, without needing a Microsoft Operating System license. CrossOver includes an easy to use, single click interface, which makes installing a Windows application simple and fast. Once installed, your application integrate seamlessly with your Gnome or KDE environment. Just click and run your application, exactly as you would in Windows, but with the full freedom of Linux.

CrossOver Linux lets you use many Windows plugins directly from your Linux browser. Plugins work on any x86 based Linux distribution and will integrate with most browsers including Firefox 1.x, Netscape 6.x, Konqueror, Mozilla, and Opera. CrossOver also integrates with Gnome and KDE to let you transparently open any Word, Excel or PowerPoint file. But even better, you can open these attachment types directly from any mail client.

Lo devo ammettere, nutro un affetto particolare per CXLinux, perché da molti anni gira sulle mia Linux box (un tempo si chiamava Crossover Office, alias: CXOffice) e mi dà spesso enormi soddisfazioni.

La seconda soluzione non è però affatto da sottovalutare: proprio come CXLinux, lo script IEs4Linux sfrutta `wine` per simulare le funzionalità di un sistema di casa Redmond e ci fa girare sopra un buon numero di applicazioni.

Ecco come installare IEs4Linux su Debian Etch:

  1. scaricare e installare (come root) le dipendenze minime:
    # apt-get install wine cabextract binfmt-support
  2. scaricare (come utente normale) l’ultima versione dello script di installazione:
    ~ wget http://www.tatanka.com.br/ies4linux/downloads/ies4linux-latest.tar.gz
  3. estrarlo con il consueto comando `tar`:
    ~ tar xvfz ies4linux-latest.tar.gz
  4. spostarsi nella directory così creata:
    ~ cd ies4linux-*
  5. lanciare lo script:
    ~ ./ies4linux

A questo punto il gioco è fatto! Verrà mostrata una gui dove è possibile selezionare alcuni semplici parametri da passare allo script di installazione. Consiglio di selezionare solo le versioni 6.0, 5.5 e 5.0 di Internet Explorer: anche se nella opzioni avanzate viene data la possibilità di installare la versione 7.0, si tratta di una beta ancora molto instabile e sconsigliata dallo stesso Sérgio.

Raccomando a chiunque abbia tratto beneficio dalla script realizzato da Sérgio Luís Lopes Júnior di versare il giusto obolo, basta anche un solo euro con PayPal. Ecco l’indirizzo dove trovare maggiori informazioni su come contribuire al suo bel progetto:

http://www.tatanka.com.br/ies4linux/page/Contribute

Skydiving Tux

Varie, YouTube Nessun commento »