Tips and Tricks: MySQL e suo stop causa disk full … come farlo ripartire velocemente

novembre 7th, 2010 glycerin

Ultimamente mi è capitato di dover fronteggiare un DB server che si è trovato a corto di spazio a causa di una crescita vertiginosa dei suoi binlog. In particolare questo DB server si occupa dello storage delle sessioni di navigazione.
Una cosa che mi è tornata utile è stata quella di lasciare una via di fuga per poter far ripartire il daemon creando un file empty usando dd. Cancellando questo file vuoto si libera immediatamente dello spazio permettendo così di poter usare la console MySQL. Altrimenti, senza uno spazio da liberare immediatamente sarebbe impossibile operare per il semplice fatto che il daemon risulta in stallo; in particolare mi è capitato di poter scrivere la query in console e rimanere in attesa dell’output invano. Così facendo ho potuto liberare spazio mediante la query di cancellazione manuale dei binlog:

PURGE BINARY LOGS TO 'mysql-bin.132226';

Mentre il file empty è stato creato con la seguente istruzione:

dd if=/dev/zero of=/var/backups/empty_file_to_delete bs=4k count=125000

Una guida veloce su come usare dd è al seguente link “Creare file vuoti di grandi dimensioni con Linux e Windows” che oltretutto dà una valida alternativa a “dd” in ambiente windows … ovvero fsutil.

Technorati Tags: mysql, dd, fsutil, binlog, purge, query

 Tips and Tricks: MySQL e suo stop causa disk full ... come farlo ripartire velocemente
share save 171 16 Tips and Tricks: MySQL e suo stop causa disk full ... come farlo ripartire velocemente

Posted in Debian, Linux, mysql, News | No Comments »

Operazioni da fare per liberare spazio su delle macchine in DISK CRITICAL

ottobre 21st, 2010 admin

Non appena Nagios ci segnala, tramite la sua console, che lo spazio disponibile per una macchina è in condizioni critiche (segnalato in genere con un bel rosso con su scritto DISK CRITICAL) bisogna pensare a come liberare spazio che magari è inutilmente occupato.
Di seguito gli step che io seguo

* Ridurre la verbosità dei log applicativi

* Eventualmente azzerare lo spazio occupato da un log corposo con un bel cat /dev/null; in questo modo il log in uso non viene stoppato nel momento in cui lo si svuota.

* Analizzare le directory cresciute in termini di spazio. In questo caso il comando linux “du” ci è molto d’aiuto. In genere per fare le indagini in modo approfondito parto col fare un “du -ch –max-depth=1″ della directory sotto analisi. E da lì poi scendere fino a trovare quella più corposa per poter fare un pò di pulizia.

* Se si usa atsar per monitorare le risorse di sistema e la frequenza di campionamento delle variabili di controllo è stata posta a 1 minuto si hanno circa 1,2 GB di spazio occupato. In questi casi un’altra pezza per liberare spazio può essere la cancellazione di un pò di giorni oppure lo spostamento su di un’altra macchina dei log di atsar. Uno script che ho usato è il seguente che rinomina il log con la data e il nome macchina e lo copia su di un host remoto:

for i in `find /var/log/atsar -regextype posix-awk -type f -regex "/var/log/atsar/atsa[0-9]{2}$" -mtime +7 -daystart -exec ls -la {} \;|awk '{print $8}'`; do giorno=`ls -latr $i|awk '{print $6}'| sed -r 's/-/_/g'`; mv "$i" "$i"_`cat /etc/hostname`_$giorno; gzip -v "$i"_`cat /etc/hostname`_$giorno;scp -p "$i"_`cat /etc/hostname`_$giorno.gz root@hostremoto:/var/backups/atsar_backup/; rm -f "$i"_`cat /etc/hostname`_$giorno.gz; done

* Se sulla macchina vi è un DB server magari usato dall’applicazione in locale per delle SELECT può essere utile controllare lo spazio occupato dalle tabelle e magari scoprire che qualche tabella è posta lì a crescere a dismisura senza tenere conto che in effetti è inutile. Cosa evidente se non si usa il partizionamento di tabelle per data.

Questi sono solamente degli hint su come rimediare, temporaneamente, nel caso lo spazio disco si riduca repentinamente. Ovviamente la cosa migliore è poter allocare maggior spazio alla macchina magari con l’exporting di un filesystem da una NAS. Ovviamente altri suggerimenti sono ben accetti…

share save 171 16 Operazioni da fare per liberare spazio su delle macchine in DISK CRITICAL

Posted in News | 2 Comments »

Apache 2.2.9 in Debian Lenny e la direttiva ServerTokens

ottobre 13th, 2010 glycerin

Questo appunto devo lasciarlo per altre occasioni in cui mi trovo a settare la direttiva e ritrovarmi a perdere una marea di tempo cercando di capire come mai non funzioni.
Una cosa che ho l’abitudine di fare è di rinominare i file installati in origine come nome_file.orig. In questo caso questa cautela può essere dannosa; ovvero rinominare il file security posto all’interno di /etc/apache2/conf.d in security.orig può portare a perdere una marea di tempo nel capire come mai la direttiva ServerTokens magari posta a Prod si presenti come una Full, come in origine.
In soldoni il daemon non distingue i due file di configurazione e quindi va a leggere il security.orig e non quello modificato; vanificando l’impostazione richiesta. Cosa alquanto strana e direi anche mooolto antipatica perchè se non testata potrebbe portare a delle misconfiguration del web server.
Un veloce workaround è banalmente il dover rinominare il file in un diverso modo; ad esempio orig_security o altro modo; oppure spostare il file magari in /var/backups.
Technorati Tags: Apache2, ServerTokens

 Apache 2.2.9 in Debian Lenny e la direttiva ServerTokens
share save 171 16 Apache 2.2.9 in Debian Lenny e la direttiva ServerTokens

Posted in Debian, Linux, News, Security | No Comments »

Nuovo numero di Linux&C. disponibile in edicola a Torino

settembre 23rd, 2010 glycerin

Beh .. come non segnalare l’uscita del nuovo numero di Linux&C. in edicola, il numero 71. Argomenti molto interessanti in discussione, come sempre. La mia curiosità è rivolta particolarmente verso la trattazione di Asterisk e una descrizione pratica dell’utilizzo di HIPHOP per migliorare le prestazioni di un sito web e l’intervista a Stefano Zacchiroli attuale Debian Project Leader……..

Buona lettura
Technorati Tags: Linux&C, asterisk, hiphop

 Nuovo numero di Linux&C. disponibile in edicola a Torino
share save 171 16 Nuovo numero di Linux&C. disponibile in edicola a Torino

Posted in Debian, Linux, News | No Comments »

Anche gli sviluppatori del kernel Linux a volte sbagliano

settembre 19th, 2010 glycerin

Leggendo la nuova, che poi nuova non è, vulnerabilità riguardante il kernel Linux su “H security” non ho potuto fare a meno di pensare ciò. Se effettivamente la cosa risulta come raccontato nell’articolo in questione l’unica cosa che posso aggiungere è che sbagliare è umano. Lo so che per chi ha in ambiente di produzione una potenziale vulnerabilità di questo tipo la cosa non risulta facile da digerire ma così è ……

A quanto detto da Ben Hawkes la vulnerabilità venne scoperta e chiusa nel 2007 ma poi nel 2008, inspiegabilmente, la patch venne rimossa riaprendo la vulnerabilità che permette di guadagnare i permessi di root per mezzo di un exploit che si può tranquillamente scaricare e testare. Il problema riguarda i sistemi a 64 bit nella compatibility mode a 32 bit; in soldoni il livello di emulazione a 32 bit non discrimina se la “call” è all’interno della Syscall table o meno. Su seclists.org è stato pubblicato un veloce workaround per limitare i danni fino a quando non si potrà aggiornare il kernel vulnerabile.
Technorati Tags: linux, kernel, exploit, seclist.org

 Anche gli sviluppatori del kernel Linux a volte sbagliano

share save 171 16 Anche gli sviluppatori del kernel Linux a volte sbagliano

Posted in Linux, News, Security | No Comments »

[OT] HTML2POP3 e server response 500

settembre 15th, 2010 glycerin

Dovendo gestire più account di posta e insieme anche uno di Libero ho installato su di una Windows XP questo fantastico plugin, se così lo vogliamo chiamare. Grazie a Matteo Baccan la vita viene resa più facile ed è così possibile fare il download della posta di Libero anche se si utilizza una diversa connessione sempre del tipo analogico.
Un problema però non sono riuscito a superarlo ed è il “Server Error 500″ che ottengo ogni volta che provo a inviare delle mail utilizzando questo plugin. Difatti già testando la connessione via Outlook compare questo problema (in fase di setting dell’account di posta), anche se poi lo stesso Outlook viene ingannato e restituisce il flag verde, come se il tutto fosse ok. Ma di fatto una volta che si fa una prova non si riesce a spedire.

E’ vero che si potrebbe utilizzare un SMTP server di altro provider, ma mi piacerebbe constatare a cosa è dovuto l’errore 500. Spero di trovare altri come me che magari hanno già risolto la questione.

Technorati Tags: libero, html2pop3

 [OT] HTML2POP3 e server response 500
share save 171 16 [OT] HTML2POP3 e server response 500

Posted in News | 1 Comment »

La SEO e il Web Marketing

settembre 13th, 2010 glycerin

La pubblicazione di contenuti online e la creazione di siti web ci è facilitata da strumenti open-source tra cui tanti CMS come WordPress, Joomla o Drupal. La distinzione tra i vari siti passa su altri fattori e non riguarda soltanto l’estetica. Senza l’utilizzo della SEO e del posizionamento all’interno dei motori di ricerca pubblicare importanti notizie equivale a non pubblicare nulla; soprattutto se si parla di siti che offrono anche prodotti. Con questo post penso possa essere utile indirizzare il lettore verso questi strumenti oramai importanti per il web.
Ecco la nuova serie di video di Web Marketing e Posizionamento di "Madri "in the USA":

Per scaricare gratuitamente il primo video sulla Keyword Strategy clicca qui.

P.S. Se volessi approfondire questi argomenti allora ti consiglio di partecipare al prossimo Seo Web Marketing Experience 2010.

share save 171 16 La SEO e il Web Marketing

Posted in News | 1 Comment »

Correzione di errori nello scheduling di comandi mediante cron in Debian

luglio 23rd, 2010 glycerin

Per noi amministratori risulta necessario settare dei cron, ovvero comandi ripetuti a specifici orari e/o giorni, che generalmente possono corrispondere a degli script in bash.

Una cosa che a volte mi capita è di dover settare un nuovo cron all’interno di /etc/cron.d e accorgermmi dopo di un errore nel setting di questo cron.
La cosa risulta evidente andando a controllare il relativo log (in /var/log/cron.log) e notare delle segnalazioni di questo tipo:

Jul 22 12:51:01 host_test /usr/sbin/cron[6663]: (*system*cron_modificato) RELOAD (/etc/cron.d/cron_modificato)
Jul 22 12:51:01 host_test cron[6663]: Error: bad minute; while reading /etc/cron.d/cron_modificato

La difficoltà che ho sempre riscontrato non è di dover sistemare l’errore, dovuto magari a un copia e incolla sbagliato. Perchè anche se corretto l’indomani mattina, in genere, ho l’amara sorpresa di vedere che il cron non ha fatto il suo dovere.
Un workaround che ho trovato e testato è un procedimento un pò laborioso che comporta la perdita di almeno 4 minuti fra i vari step necessari.

Di seguito gli step seguiti:
1. Spostare il cron dalla directory /etc/cron.d in altra directory e controllare in /var/log/cron.log il normale lavoro del daemon.

2. Ricollocare il cron in /etc/cron.d, come era in origine e ricontrollare in /var/log/cron.log il normale lavoro del daemon.

3. Inserire una riga “dummy” utile soltanto al RELOAD del cron come ad esempio la seguente

27 6 * * * user #dummy row per il controllo del successivo RELOAD

ovviamente l’orario deve essere posto a un valore diverso dall’attuale altrimenti il comando verrebbe lanciato anche se l’uso del “#” dovrebbe evitare complicazioni.

Se tutto è corretto dovremmo trovare nel cron.log la seguente riga…

Jul 23 10:42:01 host_test /usr/sbin/cron[6663]: (*system*cron_modificato) RELOAD (/etc/cron.d/cron_modificato)

4. Si cancella la riga “dummy” inserita e si controlla sempre nel cron.log il successivo RELOAD

Jul 23 10:44:01 host_test /usr/sbin/cron[6663]: (*system*cron_modificato) RELOAD (/etc/cron.d/cron_modificato)

La procedura è abbastanza lunga e doverlo fare su varie macchine comporta perdere del tempo, ma finora dalle prove fatte non ho trovato altri workaround.
Ovviamente apprezzerò moltissimo suggerimenti migliorativi.

Technorati Tags: cron, /etc/cron.d, log

 Correzione di errori nello scheduling di comandi mediante cron in Debian
share save 171 16 Correzione di errori nello scheduling di comandi mediante cron in Debian

Posted in Debian, Linux, News | No Comments »

Recording di una Shell Session

giugno 18th, 2010 glycerin

Un comando per il recording di una sessione di Shell è “script” che viene in aiuto soprattutto se si vuole provare e/o ricordare ciò che si è fatto. In particolare per uno script bash una sintassi è:

script -c ./script_bash.sh log.sessione

dove log.sessione è semplicemente il nome file sul quale memorizzare le varie azioni.

P.S.: Una forma più furba di nominare il file di log, soprattutto per lavori su più server è:

script -c ./script_bash.sh log_`cat /etc/hostname`_`date +"%d%m%Y_%H%M%S"`

Technorati Tags: bash, script, shell recording

 Recording di una Shell Session
share save 171 16 Recording di una Shell Session

Posted in Debian, Linux, News | No Comments »

[OT] Breve descrizione della mia attuale occupazione .. il lavoro più brutto al mondo

giugno 10th, 2010 glycerin

Lo so .. è OT ma quando l’ho letta ho pensato che questa sarebbe da stampare e da incorniciare per cui la allego al mio blog.
Al terzo paragrafo estenderei la tipologia di prodotto per un unico vendor molto conosciuto a tutti i vendor commerciali o meno che producono un prodotto informatico ….
I miei complimenti all’autore.
Ringrazio il carissimo amico che mi ha fatto conoscere questa fantastica descrizione.

Buona lettura …

Il lavoro più brutto al mondo
Faccio un lavoro in cui devi essere sempre disponibilie
perché i sistemi devono funzionare 24 ore su 24 per 365
giorni all’anno; a ferragosto non trovi l’idraulico ma trovi
me (se trovi l’idraulico, costa molto più di me).

 [OT] Breve descrizione della mia attuale occupazione .. il lavoro più brutto al mondo
share save 171 16 [OT] Breve descrizione della mia attuale occupazione .. il lavoro più brutto al mondo

Posted in News | No Comments »