Archivio Tag: shell

WordPress da terminale

Installare e gestire WordPress da terminale

Certo non è una cosa per tutti.

Prima di tutto perché il terminale non è sempre disponibile, specie negli hosting condivisi, e potrebbe anche non bastare, per gli eventuali limiti imposti sempre dall’hosting. Nessun problema invece per chi utilizza VPS o server dedicati.

Poi perché bisogna avere una certa confidenza con il terminale stesso, uno strumento che spesso spaventa anche i più arditi.

Ma se ci si prende la mano, è possibile installare e gestire WordPress molto agevolmente, con un notevoli risparmi di tempo, evitando i rallentamenti causati dall’interfaccia web. Continua a Leggere →

Scoprire il percorso sul server

Percorso cartella sul server

Capita di dover trasferire dei siti in PHP, o dei CMS, da un server ad un altro, magari su un hosting completamente differente.

In taluni casi (es. Joomla) per funzionare occorre che in qualcuno dei file configurazione sia indicato il percorso assoluto per arrivare alla cartella del sito web.

Una cosa che cambia da server a server, dipende dalla configurazione, dal pannello di controllo utilizzato, e altre variabili. Per capirci potrebbe assomigliare a questa:

/var/www/vhost/nomedominio.com/public_html

Continua a Leggere →

Nostalgia canaglia…

Sono tornato ad essere un “normale utilizzatore” di servizi internet, quindi certi privilegi da addetto ai lavori mi sono preclusi, ed ogni tanto me lo dimentico. Come quando cerco di aggiornare un sistema, lanciare una patch, o fare un backup di un database.

Il puntatore corre rapido verso l’icona del Terminale, è un gesto ormai istintivo, e quando mi accorgo che un accesso da terminale non ce l’ho più beh, ci rimango pure un tantinello male.

Non è che sia un genio al terminale, riesco giusto a fare quel po’ di operazioni imparate lungo la strada, e che mi hanno semplificato di molto il lavoro negli ultimi anni.

Me ne rendo conto ora, che le stesse operazioni le devo fare da una qualche interfaccia web, che se tutto va bene è giusto solo un po’ lenta.

È proprio vero che certe cose le apprezzi per quanto valgono solo quando ti mancano…

Shell script per archiviare i file del mese precedente

Mi è capitato di dover predisporre l’archiviazione di una serie di file di testo su un server Linux, che un’applicazione scrive più volte al giorno in una data cartella, ma di doverli archiviare per il mese precedente, ovviamente riferendosi al mese in cui viene eseguita l’operazione, lasciando così consultabili solo quelli del mese corrente.

Per fare un esempio su cui lavorare, i file potrebbero essere in questo formato: YYYY-MM-DD-HH-mm.txt, il classico formato anno-mese-giorno-ora-minuti.

Ho trovato una soluzione molto semplice definendo una variabile, grazie alle molteplici possibilità del comando date (un classico man date per i dettagli), che mi individui tutti i files del mese precedente:

set MESESCORSO=`date -d "last month" '+%Y-%m-*.txt'`

Sempre grazie a date, definisco il formato del file compresso del mese precedente, nel formato YYYY-MM.zip (io ho preferito usare zip, ma è possibile usare il sistema di compressione che si preferisce):

set ARCHIVIOMESESCORSO=`date -d "last month" '+%Y-%m.zip'`

A questo punto mi rimane solo da definire, per comodità, il percorso sul server dove posizionare gli archivi mensili compressi:

set ARCHIVIMENSILI=/percorso/archivio/

Completano la sequenza i semplici comandi mv e rm per spostare gli archivi creati e cancellare i file originali.

Il tutto, alla fine, diventa uno script che assomiglia a questo (le righe che iniziano con # sono dei commenti):

#!/bin/tcsh

# DEFINISCO LE VARIABILI
set MESESCORSO=`date -d “last month” ‘+%Y-%m-*.ltxt’`
set ARCHIVIOMESESCORSO=`date -d “last month” ‘+%Y-%m.zip’`
set ARCHIVIMENSILI=/percorso/archivio/

# MI POSIZIONO NELLA CARTELLA DOVE CI SONO I FILE DA TRATTARE
cd /percorso/dei/file/da/archiviare

# ESEGUO INDIVIDUAZIONE E COMPRESSIONE ARCHIVIO MESE PRECEDENTE
zip $ARCHIVIOMESESCORSO $MESESCORSO
mv $ARCHIVIOMESESCORSO $ARCHIVIMENSILI
rm -vf $MESESCORSO

Il tutto inserito in un bel crontab che lo lancia il primo giorno di ogni mese

Ovviamente si tratta solo di un esempio, (molto) migliorabile con raggruppamenti di comandi e controlli sull’esecuzione corretta delle operazioni, ma a me è servito come base di partenza.
Anzi, se avete suggerimenti da dare sono particolarmente graditi… 😉

Ciao, come posso aiutarti?
Powered by