Per molti programmatori LAMP, il rapporto con la componente server (e la componente Linux) può non essere così scontato. In fondo, i CMS di nuova generazione permettono di eseguire via browser operazioni, come l'aggiornamento del sistema, il backup del database o la manutenzione ordinaria, che fino a pochi anni fa erano possibili solo attraverso la mediazione di strumenti come FTP o SSH.
Tuttavia, conoscere i rumendi della linea di comando, l'approccio nativo dei sistemi Unix-like, può essere utile in svariate situazioni. Di seguito ho raccolto alcuni comandi molto semplici e assolutamente indispensabili, che non dovrebbero mancare nel background di nessun LAMPer. Se ve ne vengono in mente altri segnalaterli nei commenti!
Backup e ripristino del database
mysqldump permette di ottenere un dump (o copia) del database in formato SQL. L'uso è molto semplice:
Prima di prodere vi verrà chiesta la password del database per l'utente DB_USER gzip mysqldump
Per ripristinare il database mysql zcat cat
zcat db_backup.sql.gz | mysql -u DB_USER -p DB_NAME
Trova e sostituisci
Questo comando mi è stato molto utile in diverse situazioni, in pratica consiste del sostituire una stringa con un altra all'interno di uno stream di testo. Per esempio è utile se cambiamo server o dominio ad un sito fatto con WordPress, perché con un solo comando sostituiamo tutti i riferimenti al vecchio dominio con il nuovo.
zcat db_backup.sql.gz | sed -e 's/127.0.0.1/www.domain.tld/g' | gzip -9 > new_db_backup.sql.gz
Dov'è quella funzione?
Ammettiamo di avere una directory con 30 file PHP e di cercare quali chiamano la funzione pippo()
grep -n -i 'pippo(' *.php
In pochi attimi otterremo la lista dei file che contengono pippo(
Mettere a posto i permessi dei file
Una cosa noiosa di Apache è il messaggio Access denied apache www-data
Due semplici comandi eseguiti nella root del sito metteranno a posto tutti i permessi, i cui valori dovranno essere adattati alla situazione locale con particolare attenzione alla sicurezza.
find . -type d -exec chmod 750 {}\\; find . -type f -exec chmod 640 {} \\;
Cancellare i vecchi file
Vogliamo cancellare i file più vecchi di 30 giorni o di 5 minuti? Nessun problema!
find /var/www/store/spool/ -type f -mtime +30 -exec rm -f {} \\; find /var/www/store/cache/ -type f -mmin +5 -exec rm -f {} \\;
Se qualcosa non fosse chiaro man nomecomando man mysqldump Linuxmanpages.com
Quelli presentati qui sopra sono una parte molto piccola di cià che è possibile fare da linea di comando come supporto ad una applicazione LAMP, ma già dovrebbero far capire quanto questo approccio sia premiante per la gestione delle risorse e la manutenzione.