Archivio della categoria 'Tips & tricks'

Amarcord: gli “Appunti di Informatica Libera” di Daniele Giacomini

Open Source, Principianti, Tips & tricks Nessun commento »

Il celebre pinguino Tux, logo ufficiale del kernel LinuxSegnalo a tutti i pischelli che per deprecabili motivi anagrafici non la conoscono un’opera che per quelli della mia generazione ha rappresentato una vera e propria icona pionieristica dello spirito Free Software in Italia. Si tratta della ormai mitica raccolta di appunti collezionati e pubblicati sistematicamente da Daniele Giacomini a partire dal 1997.  Denominata inizialmente “Appunti di Linux”, dal 2000 ha preso il nome di “Appunti di Informatica Libera” e copre in maniera semplice ed estremamente empirica una vasta gamma di argomenti, dai concetti più elementari alla compilazione di sorgenti in vari linguaggi – sì, ci sono anche istruzioni piuttosto dettagliate circa la compilazione del kernel Linux.

Anche se il sito web istituzionale risulta da tempo irraggiungibile, sopravvive una ultima copia dell’opera aggiornata al 27 novembre 2008 all’indirizzo:

http://a2.pluto.it/a21.htm

Trovo che gran parte delle informazioni conservate in questi appunti siano ancora estremamente utili, specie per chi si appresta ad affrontare il mondo dell’open source per la prima volta.

UPDATE! Mi hanno segnalato la disponibilità di una versione molto più aggiornata degli Appunti di Informatica Libera in vari formati: TXT, HTML, PDF, etc. Potete trovarli a questo indirizzo, pronti per il download:

http://appuntilinux.mirror.garr.it/mirrors/appuntilinux/2009.11111/

Backup e ripristino dell’immagine completa di una SD card con dd

Backup, Open Source, Principianti, Shell, Sistema, Tips & tricks 4 commenti »

Una vecchia SD Card da 512 MBMi capita sempre più spesso di dovere effettuare backup di partizioni Linux installate su SD card e di doverle ripristinare su altre SD. Il tutto rientra in un progetto molto interessante in cui un microserver basato su Linux gestisce una serie di funzionalità di rete amministrabili da un backoffice accessibile da LAN, WAN e WLAN. Lo sviluppo di questa soluzione necessita di repliche su microserver di backup e su vari altri dispositivi benchmark. Dato che ripeto questa procedura almeno 2 volte al giorno, la registro qui perché possa essere di pubblica utilità.

Per backuppare l’intero filesystem dalla SD card pluggata al mio PC con un adattatore USB, uso il comando:

dd if=/dev/sdb | gzip -c9 > ./backup_sdb.gz

Parafrasando: copia l’intero filesystem della device /dev/sdb nel file gzippato “backup_sda.gz”. Occhio quindi ad indicare la corretta device nel caso in cui sul vostro server/PC non sia sdb!

Per ripristinare il tutto, eseguo l’operazione complementare:

gunzip -c ./backup_sdb.gz | dd of=/dev/sdb

Se avete dubbi o domande, chiedete e vi sarà risposto. Non prima di avere consultato “man dd”, però…

Reimpostare la password di root dimenticata su MySQL

MySQL, Open Source, Tips & tricks Nessun commento »

Logo MySQLQuesto è uno di quei vecchi trucchi del mestiere che – a volte – si finisce per dimenticare proprio per la loro disarmante semplicità.

Supponiamo che, per un qualsiasi motivo, il sistemista Enrico – eh eh eh – smarrisca irrimediabilmente la password di root del database MySQL che gira sul suo server Debian GNU/Linux. Reimpostare la password dell’utente root di MySQl è semplicissimo:

  1. accedere al server Linux con privilegi di amministratore (root)
  2. fermare il database MySQL:
    /etc/init.d/mysql stop
  3. avviare il database mysql in modalità skip grant (ovvero ignorando i privilegi assegnati ai vari utenti – compreso root – sulle table del database):
    mysqld_safe --skip-grant-tables
  4. accedere al database mysql con pieni privilegi di root ma senza password:
    mysql -u root mysql
  5. assegnare a root la password desiderata:
    UPDATE `user` SET `Password`=PASSWORD('nuovapassword') WHERE `user`='root';
    FLUSH PRIVILEGES;
    EXIT;
  6. riavviare MySQL in modalità normale:
    /etc/init.d/mysql restart

Fatto! ;-)

Filesystem Hierarchy Standard

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

Filesystem Hierarchy StandardUna delle domande più frequenti che mi vengono rivolte dai nuovi aspiranti sysadmin Linux riguarda il significato dei nomi delle “cartelle” – così purtroppo ancora le chiamano. Si riferiscono a quelle directory di sistema comuni alla famiglia di sistemi operativi derivati dal mitico 4.4BSD. Ebbene, per tutti coloro che non riescono a dormire la notte chiedendosi cosa possano mettere e cosa no in directory come /var, /usr/lib, /etc e /opt… la risposta ufficiale e autorevolissima è contenuta in questo PDF:

RTFM a tutti! :)

Debian Lenny e controller PERC 5/i

Debian, Open Source, Sistema, Tips & tricks 7 commenti »

Logo DELLQuesta settimana ho dedicato molto del mio tempo al rifacimento di un server Dell PE1950. Non è la macchina più performante tra quelle che ho a mia disposizione ma è senz’altro un server di altissima qualità, destinato a durare molto nel tempo. Una delle mie esigenze più urgenti quando preparo server di questo livello è l’integrazione con Debian GNU/Linux dei software di monitoraggio del RAID-1. A seconda del controller montato sul server è necessario ovviamente installare uno specifico software e settare correttamente il kernel. Spesso questo tipo di operazioni richiede molto tempo e molta pazienza, specie nel benchmarking che deve sempre precedere la messa in produzione di un server dopo interventi di questo tipo. In questo caso è andato tutto nel migliore dei modi, devo dire più grazie alla qualità del controller e del software utilizzato che alla distro (nel senso che in questo caso Debian non ha meriti particolari nel corretto funzionamento del software). Leggi il resto »

apt-get: come risolvere l’errore NO_PUBKEY

Debian, Open Source, Sistema, Tips & tricks 2 commenti »

Il logo ufficiale di Debian GNU/LinuxRispondo ad una richiesta di assistenza che mi ha raggiunto nel cuore della notte: un server Debian GNU/Linux 4.0 (Etch) si è perso – per motivi che meriterebbero un serio approfondimento – le chiavi pubbliche dei repository indicati in /etc/apt/sources.list. Si tratta – in poche parole – delle chiavi di crittografia GPG che permettono di verificare l’effettiva identità del repository, onde evitare il download di pacchetti contraffatti da chissà quale fonte.

La perdita delle chiavi pubbliche determina l’errore NO_PUBKEY ad ogni apt-get update:

W: GPG error: http://security.debian.org etch/updates Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY XXXXXXXXXXXXXXXX
W: GPG error: http://ftp.debian.org etch Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY XXXXXXXXXXXXXXXX
W: You may want to run apt-get update to correct these problems

Per risolvere il problema è sufficiente importare nuovamente le chiavi pubbliche:

gpg --keyserver subkeys.pgp.net --recv XXXXXXXXXXXXXXXX
gpg --export --armor XXXXXXXXXXXXXXXX | apt-key add -

SEO: non vi fidate di chi promette miracoli

Motori di ricerca, Tips & tricks 2 commenti »

Il logo di Google ItaliaMi capita sempre più spesso di ricevere offerte da aziende mai sentite prima che promettono interventi miracolosi di SEO, con risultati pressoché immediati e decisamente allettanti: incremento degli accessi anche del 500%, presenza nelle prime pagine dei principali motori di ricerca per un numero non irrilevante di keyword, etc.

L’esperienza e la buona conoscenza della materia mi fanno subito storcere il naso e bastano poche domande per mettere con le spalle al muro il commerciale che – a fronte di risultati del tutto fasulli – si aspettava di incassare dai 1.500,00 EURO in su. Purtroppo lo stesso non accade quando a parlare con il medesimo commerciale è uno dei miei clienti che, senza prendersi la briga di consultarmi prima, si lascia convincere e sottoscrive un contratto di fornitura che è – senza mezzi termini – una truffa bella e buona. Leggi il resto »

Come smontare e rimontare la trackball di un BlackBerry serie 8*** senza poi doverlo buttare

Diario di bordo, Tips & tricks, Varie 1 commento »

Smontare rotellina BlackBerryLa spiaggia non è una buona alleata dei dispositivi elettronici, a maggior ragione di quelli che hanno parti meccaniche minuscole come la trackball del BlackBerry.

Al rientro dalla breve vacanza la trackball del mio BB sembrava impazzita: in maniera del tutto casuale era impossibile spostare il cursore in una qualsiasi direzione, segno abbastanza indicativo della presenza di uno o più granelli di sabbia tra la trackball e i microcilindri che trasmettono le informazioni sul movimento del puntatore al dispositivo.

Dopo una breve googleata ho trovato un post che spiega come smontare e rimontare la trackball di un BB senza fare danni. Ve lo segnalo perché è davvero ben fatto e mi è stato di grande utilità:

http://www.blackberryitalia.it/mod.php?v=articoli&arg=tips&op=view&id=283

Le istruzioni e le fotografie di corredo si riferiscono al modello 8100 Pearl, ma si sono rivelate assolutamente valide anche per il mio 8310 e credo che più in generale possano essere utili a chiunque abbia un BB della serie 8***.

Certo qualcuno di voi si chiederà: ma che cosa te lo sei portato a fare in spiaggia? …

Attenti ad una grave vulnerabilità di PHPMyAdmin su Debian Etch

Debian, Open Source, Segnalazioni, Tips & tricks, Varie 8 commenti »

Schermata della vulnerabilità di PHPMyAdminDa oltre un mese noto sui miei server dove ancora gira Debian 4.0 (Etch) ripetuti tentativi di accesso ai database MySQL approfittando di una grave vulnerabilità di PHPMyAdmin. So che il problema è già stato segnalato su http://bugs.debian.org, ma ancora non è stata rilasciata alcuna patch. Ne parlo qui perché chi ha un server Etch e non ha debitamente protetto l’accesso al db da localhost possa correre ai ripari prima che accada l’irreparabile – mi si passi il gioco di parole. Leggi il resto »

Grep parade!

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

Uno dei comandi più utilizzati quando si amministra un server UNIX o Linux da linea di comando è senza dubbio `grep`. Per chi non lo conoscesse, mi limito a dire che si tratta di uno script efficiente e flessibilissimo in grado di individuare espressioni regolari all’interno di un file o di un output testuale. Il nome del comando è infatti acronimo di “global regular-expression print”. Tutto il resto lo trovate con il solito `man grep`. Per chi invece usa abitualmente grep per i task di amministrazione di ogni giorno, raccolgo qui una serie di esempi d’uso un po’ più evoluti e – magari – insoliti. Potrebbero essere utili a voi come lo sono stati a me in numerose occasioni.

Trova le ricorrenze della sequenza qui, quo AND qua in file.txt:
grep "qui.*quo.*qua" ./file.txt

Trova le ricorrenze di qui OR quo OR qua in file.txt:
grep -P 'qui|quo|qua' ./file.txt

Verifica che un indirizzo email sia formattato correttamente:
echo "info@test.eu" | grep -Ei '\b[a-z0-9]{1,}@*\.(it|eu|com|net|org|tv)\b'

Trova la parola qua in modalità case in-sensitive in ./file.txt:
grep -iw "is" demo_file

Trova gli indirizzi email in test.txt formattati come <qwerty.qwerty@qwerty.com> e rimuove i caratteri di enclosure (< e >):
grep -o '<.*@.*\.*>' ./test.txt | tr -d '<>'

Trova le ricorrenze multiple di qui OR quo OR qua in una stringa di testo:
echo -e "1) qui quo qua\n2) quo qui qua\n3)qui quo qui\n4) qua quo qui\n" | grep -E '(qui|quo|qua).*\1'

Verifica se la stringa passata mediante pipe sia un indirizzo IP o meno (provate passando un indirizzo IP mal formato):
echo "192.168.123.123" | grep -E '\b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b'

Mostra tutte le righe dell’httpd.conf omettendo le istruzioni commentate:
grep -v -E '^\#|^$' /etc/apache2/httpd.conf

Supponendo che lo script test.sh contenga le seguenti istruzioni:

#!/bin/bash
contatore=1
until [ $contatore -gt 10 ]; do
echo contatore $contatore
let contatore+=1
done

… il comando che segue individua la riga 4 e le 3 righe che seguono:

./test.sh | grep -A 3 -i "contatore 4"

… il comando che segue individua invece tutte le righe tranne quelle contenenti il 4 e il 6:

./test.sh | grep -v -e "4" -e "6"

Il sito Internet ufficiale del progetto grep si trova all’indirizzo http://gnu.org/software/grep/.