Spesse volte, soprattutto per chi deve gestire server Linux, diventa comodo automatizzare alcune attività: pensate al backup, per esempio. Invece di doversi preoccupare costantemente di salvaguardare i proprio dati, possiamo dimenticarci di questa preoccupazione andando a configurare l’operazione di backup come una operazione automatica che il sistema farà in un determinato momento di tempo, che ovviamente saremo noi a decidere.

Ma come è possibile fare questo? Utilizzando il daemon Cron.

Cron è un demone che appunto può essere utilizzato per eseguire operazioni pianificate in base all’ora, al giorno del mese, al mese, al giorno della settimana.

Ovviamente l’utilizzo di Cron presuppone che il sistema sia sempre accesso: nel caso in cui risulti spento quando una operazione è pianificata, semplicemente questa non verrà eseguita. Per poter utilizzare Cron (che il più delle volte è disponibile già in ogni installazione di Linux) occorre che sia installato il pacchetto RPM vixie-cron e il servizio crond sia in secuzione. Per verificare che il pacchetto sia installato e che il servizio sia in esecuzione è sufficiente digitare i seguenti comandi:

rpm -q vixie-cron
/sbin/service

Ma arriviamo al punto fondamentale, ovvero a come configurare le operazioni con Cron. Il file di configurazione più importante di Cron, /etc/crontab, contiente le seguenti righe:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

Nelle prime quattro righe vengono inizializzate alcune variabili utilizzate per configurare l’ambiente in cui vengono eseguiote le operazioni di Cron. La variabile SHELL indica al sistema quale ambiente shell utilizzare (nell’esempio è inidicata la bash shell) mentre la variabile PATH definisce il percorso utilizzato per eseguire le operazioni. L’ouput di ogni operazione Cron viene inviato tramite e-mail al nome utente specificato nella variabile MAILTO: se quest’ultima viene lasciata vuota non viene inviata alcuna mail. La variabile HOME indica la directory home per l’esecuzioni di eventuali script o comandi.

Ogni riga del file /etc/crontab può essere vista come un’operazione e ha il seguente formato:

 

* * * * * command
- - - - -
| | | | |
| | | | ----- giorno della settimana (0 - 6) (domenica=0)
| | | ------- mese (1 - 12)
| | --------- giorno del mese (1 - 31)
| ----------- ora (0 - 23)
------------- minuti (0 - 59)

Come di intuisce facilmente dalla figura sopra, il primo campo si riferisce ai minuti, il secondo all’ora, il terzo al giorno del mese, ecc. : in questo modo possiamo stabilire con esattezza il momento temporale in cui vogliamo che una determinata operazione (nell’esempio command) venga eseguita. Gli intervalli tra parentesi indicano i range di valori possibili, tenendo presente che qualsiasi valore può essere sostituito con il simbolo *, che indica tutti i valori validi. Per esempio, un asterisco per il valore del mese indica di eseguire ilk comando specificato ogni mese in base alle restrizioni degli altri valori.

Con il trattino “-” invece indichiamo un intervallo di valori, metre con la virgola “,” creiamo una lista: con il simbolo “/” indichiamo invece valori che vogliamo escludere. Vediamo alcuni esempi:

1-4 (1,2,3,4)

3,4,5,7,12,56 (lista)

0-45/2 (escludiamo il valore 2 da tutti i valori comresi tra 0 e 45 )

*/4 (utilizzato nel campo del mese, indica che l’operazione verrà effettuata ogni 4 mesi)

 

Vediamo un esempio. Visto che tutti i crontab definiti dall’utente vengono salvati nella directory /var/spool/cron/ ed eseguiti usando il nome utente di chi li ha creati, per creare un crontab con un determinato utente bisogna connettersi al sistema con il nome di questo utente e digitare il seguente comando:

crontab -e

Si aprirà il crontab realtivo pronto per le modifiche e aperto con l’editor specificato nella varibile VISUAL o EDITOR. Una volta modificato il file, lo salviamo e usciamo (se utilizzaimo VI, in modalità comando digitiamo :wq). Una volta salvate la mofidiche al crontab, questo viene salvato in base al nome dell’utente e scritto nel file /var/spool/cron/nomeutente.

Il file /etc/crontab utilizza lo script run-parts per eseguire gli script nelle seguenti directory:

/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly

rispettivamente in base oraria, giornaliera, settimanal, mensile. Nel caso in cui volessimo eseguire un file di cron con una fase oraria diversa, allora dovremmo aggiungerla nella directory /etc/cront.d . Tutti i file di questa directory utilizzano la medesima struttura del file /etc/crontab .

Il deamon Cron controlla il file /etc/crontab, le directory /etc/cront.d e /var/spool/cron ogni minuto per rilevare eventuali modifiche. Nel caso in cui vengano rilevate delle modifiche, il file e le directory vengono ricaricati in memoria. Nota bene: se un file crontab viene modificato, non è necessario riavviare il daemon Cron.

 



ISPConfig è un pannello di controllo hosting opensource per server Linux. Attraverso questo pannello, diventa molto più comodo e semplice gestire la configurazione e la manuntezione del vostro server Linux: è un prodotto veramente interessante, soprattutto perchè complete e assolutamente gratuito.

Prima di procedere con l’installazione, è bene che studiate bene i requisiti presentati al seguente indirizzo.

Vediamo come installarlo e configurarlo correttemente. Dopo averlo scaricato al seguente indirizzo, procediamo con la ‘decomprensione’ del file archivio e sistemandoci nella cartella di installazione:

tar xvfz ISPConfig*.tar.gz
cd install_ispconfig

A questo punto siamo pronti per partire con il processo di installazione, lanciando il comando

./setup

A questo punto l’installatore si preoccuperà di tutto il processo, a noi non resterà che rispondere a delle domande che nella maggior parte dei casi sono semplici e chiare. La prima cosa che farà l’installatore sarà compilare Apache con il modulo PHP5: questa compilazioni non modificherà eventuali precedenti personalizzazioni nella configurazione del server wev

Una volta conclusa questa prima fase, sarà necessario creare un certificato SSL: a questo proposito verranno sottoposte una serie di domande, alle quali si può rispondere accettando i valori di default o inserendone di personali.

Bisogna fare attenzione quando raggiungiamo i seguenti punti :

Encrypting RSA private key of CA with a pass phrase for security [ca.key]

Encrypting RSA private key of SERVER with a pass phrase for security [server.key]

del processo di creazione del certificato, perchè qui possiamo chiedere se vogliamo crittografare la password realativa. E’ importante scegliere no, perchè altrimenti ogni qualvolta intendiamo riavviare il sistema ISPConfig ci verrà chiesta una password, e questo comporta che non è possibile riavviare il sistema senza un intervento umano.

Se ci troviamo di fronte un fallimento della compilazione, il processo di setup viene interrotto e i file finora compilati vengono rimossi. Dal messaggio di errore, dovrebbe essere chiaro il problema: una volta risolto, si può procedere nuovamente con il processo di setup.

In caso di successo, invece, ci verrà chiesto di scegliere una lingua: questa scelta si riferisce al linguaggio dell’interfaccia di ISPConfig. Una volta accetta la licenza, che consigliamo di leggere bene, viene chiesta la modalità di installazione: sarebbe meglio scegliere la modalità expert, perchè permette un maggior controllo sull’installazione. Quindi digitiamo 2 e proseguiamo con il processo di installazione.

Segue il riconscimento del daemon postfix, e la scelta della web-root: se non ci va bene la proposta di default, digitiamo n ed inseriamo la cartella che preferiamo. Inserita la web-root verranno richiesti ulteriori dati di configurazione:

Please enter your MySQL server: localhost
Please enter your MySQL user: root
Please enter your MySQL password: (inserire la pass scelta durante l’installazione del MySQL Server)

Please enter a name for the ISPConfig database (e.g. db_ispconfig): db_ispconfig
Please enter the IP address of the ISPConfig web (e.g. 192.168.0.1): xxx.xxx.xxx.xxx (Inserire il proprio IP)
Please enter the host name (e.g. www): www
Please enter the domain (e.g. xyz.de):
tuodominio.com

Please select the protocol (http or https (SSL encryption)) to use to access the ISPConfig system:
1) HTTPS
2) HTTP
Your Choice:
1

Se stiamo procedendo ad una installazione di test, il nome host lo possiamo lasciare vuoto, e al posto del nome di dominio possiamo inserire l’indirizzo IP.

Una volta completati tutti i passaggi ISPConfig sarà finalmente installato sul proprio server. Se durante l’installazione abbiamo indicato www come nome host e tuodominio.com come dominio, allora l’interfaccia di ISPConfig sarà raggiungibile al seguente indirizzo:

https://www.tuodominio.com:81 o http://www.tuodominio.com:81

Il primo login andrà fatto inserendo admin come username e password. Ovviamente la prima cosa da fare una volta installato il pannello, è proprio quello di cambiare questi dati, viato che quelli di default non sono mai sicuri.

L’installazione è conclusa, e al seguente indirizzo potete trovare il manuale di utilizzo del pannello. Le istruzioni di installazione dettagliate per ogni sistema operativo linux sono disponibili qui.



Segue l’elenco dei comandi principali per gestire uno tra gli editor più importanti presenti praticamente in ogni versioni di Linux: attraverso questo editor si possono gestire tutti i tipi di file del sistema, e per chi gestisce da remoto un server Linux diventa di vitale importanza conoscere almeno le basi di VI.

Premessa

L’editor VI ha due modalità di funziomento: una per inserire il testo e l’altra per inserire i comandi. Quando apriamoun file con il comando “vi nomefile” la modalità di default è quella di comando: per poter modificare il file inserendo testo dobbiamo passare alla modalità testo premendo il tasto “ i ” : da questo momento in poi qualsiasi carattere o tasto premiamo verrà inserito nel file con il suo valore “testuale”. Per tornare alla modalità comando è sufficiente premere il tasto di “ESC“, digitare il comando che si desidera e premere “invio“.

Comandi Principali : Uscita & Salvataggio

  1. ZZ salvare e uscire
  2. :w salvare
  3. :w <file> salvare in altro file con il nome desiderato
  4. :wq salvare e uscire
  5. :q se non sono state effettuate modifche usce senza salvare
  6. :q! uscita incondizionata

Comandi di copia e incolla

  1. yy copia la riga corrente
  2. y2 <giu> copia 2 righe sotto la posizione in cui si trova il cursore
  3. p incolla il testo nel punto dove si trova il cursore

Cancellare righe o caratteri

  1. x cancella il carattere in cui si trova il cursore
  2. X cancella il carattere alla sinistra del cursore
  3. D cancella tutto quello che si trova alla sinistra del cursore fino alla fine della riga
  4. dd cancella la riga in cui si trova il cursore
  5. 3dd cancella 3 righe partendo dalla quella in cui si trova il cursore
  6. dG cancella dalla posizione in cui si trova il cursore fino alla fine del file
  7. d1G cancella dalla posizione in cui si trova il cursore fino all’inizio del file

Spostarsi nel file

  1. ^ inizio della riga corrente
  2. $ fine della riga corrente
  3. G fine del file
  4. 1G inizio del file

Ricerca e sostituzione del testo

  1. /<testo> cerca il testo dalla posizione corrente verso il basso
  2. ?<testo> cerca il testo dalla posizione corrente verso l’alto
  3. u annulla l’ultima modifica effettuata
  4. U annulla l’ultimo annullamento
  5. . ripete l’ultimo comando


Per chi sviluppa piattaforme web, spesse volte capita la situazione di lavorare ad un aggiornamento del sistema che ovviamente non è online e che magari risiede su una diversa macchina della versione originale che continua a “girare” normalmente.

Ovviamente durante lo sviluppo di una piattaforma da aggiornare, la versione precedente deve continuare ad essere online finchè la nuova versione non è pronta, ma d’altro canto anche chi lavora alla nuova implementazione deve poter testare il nuovo software e quindi mettelo in rete per avere un feedback.

La cosa più veloce da fare in questi casi per chi utilizza come sistema operativo Windows, è quella di aprire il seguente file:

C:\WINDOWS\system32\drivers\etc\hosts

 

Questo file permette di forzare la mappatura degli indirizzi IP: vediamo un esempio. Supponiamo di stare lavorando alla nuova versione del sito www.mysite.com : ovviamente potremmo posizionare la nuova versione in una sottocartella e risolvere il problema, ma se l’applicativo è di una certa dimensione o se la nuova versione risiede su un’altra macchina più nuova e performante ma che è mappata con lo stesso dominio, allora si presenta il problema. Ovviamente finchè non facciamo un reindirizzamento quando scriveremo sul nostro browser www.mysite.com continuerà ad vedersi la vecchia versione, ma allo stesso tempo non possiamo fare il reindirizzamento finchè la nuova versione non è pronta.

Allora possiamo forzare, attraverso alcune mofiche al file di cui sopra, la mappatura del sito, e quando digitiamo nel browser www.mysite.com vedere la versione in sviluppo residente nella macchina che indichiamo: ovviamente questa modifica varrà solo in locale, saremo gli unici a vedere sotto il dominio www.mysite.com la nuova versione, gli altri continueranno a non vedere modifiche.

Vediamo un esempio pratico, supponendo che la versione attuale del dominio www.mysite.com risieda su xxx.xxx.xxx.xxx mentre quella nuova risiede su yyy.yyy.yyy.yyy . Per effettuare la forzatura è sufficiente aggiungere al file hosts la seguente riga:

yyy.yyy.yyy.yyy                www.mysite.com

Una volta salvato il file e aperto il browser, quando andremo a scrivere www.mysite.com ora vedremo la versione in sviluppo, e potremmo lavorare e testare tranquilli. Una volta finito, possiamo o commentare ( aggiungendo davanti alla riga il simbolo # ) o cancellare la riga, e tutto tornerà come prima.



In ogni OS (Operating System) basato su Linux, i comandi da console sono fondamentali, per diverse attività che caratterizzano l’utilizzo stesso del sistema. Anche se ultimamente sono stare rilasciate versioni decisamente user-friendly ( v. Ubuntu ), che facilitano l’installazione ma anche l’utilizzo del OS, tuttavia i comandi da console rimangono fondamentali su un sistema Linux, soprattutto per chi intende approfondire le proprie conoscenze.

Per questo motivo, abbiamo deciso di raccogliere quelli che sono i principali comandi che spesse volte diventa necessario utilizzare per amminstrare al meglio il proprio sistama operativo Linux. Abbiamo scelto come OS d’esempio OpenSuse 10.3, che riteniamo una delle ultime release veramente interessanti, sia per la completezza e la robustezza del kernel sia per la facilità e la comodità di utilizzo anche per chi si avvicina per la prima volta al fantastico mondo Linux. La maggior parte dei comandi che vedremo funzionano su tutti i sistemi basati su Linux, quindi non vi preoccupate: se avete un altro OS, questa guida vi sarà comunque utilissima!! ;)

CHMOD

Il primo comando che vediamo è uno dei più famosi nei sistemi Linux: chmod. Questo comando server per gestire i permessi e gli accessi a tutte le risorse del sistema (file, directory, ecc.) . Quindi attraverso questo comando decidiamo chi può fare che cosa: ma vediamo in dettaglio il suo funzionamento.

chmod (-R) 0777 /risorsa

  1. -R è un attributo opzionale: indica la ricorsività;
  2. /risorsa è il contenuto o l’oggetto a cui intendiamo applicare le restrizioni;
  3. 0777 rappresenta la codifica dei permessi. Vi sono diverse possibilità, che seguono uno schema preciso. chmod ci permette di assegnare permessi in scrittura, lettura ed esecuzione, elementi che ci riferiamo attraverso rispettivamente i valori 4, 2, 1: quindi assegnare 7 (4+2+1) significa assegnare i permessi in scrittura, in lettura e anche in esecuzione, ovvero non assegnare restrizioni. Ma perchè ripetiamo allora tre volte il 7? Perchè il primo si riferisce all’utente, il secondo a quelli del gruppo di appartenenza e il terzo agli “altri”.

Quindi, se ad esempio scriviamo nella shell: chmod -R 744 /myDir, assegnamo alla directory myDir e a tutti gli elementi che essa contiene (ricorsivamente) i permessi in lettura, scrittura, esecuzione, per il proprietario, e in sola lettura per gli utenti dello stesso gruppo e per gli altri utenti che non rientrano nelle categorie precedenti.

CHOWN

Questo comando principalmente permette di assegnare utente e un gruppo ad una determinata risorsa (purchè l’utente e il gruppo siano esistenti). Il comando da digitare è il seguente:

chown (-R) user:group /risorsa

in cui -R ha la stessa funzione della precedente, user e group sono rispettivamente il nuovo utente e il nuovo gruppo che vogliamo assegnare alla risorsa /risorsa .

LS

Con questo comando possiamo elencare tutte le risorse di una determinata directory, visualizzando per ogni elemento alcune importanti proprietà, come ad esempio i permessi settati attraverso il comando chmod. Il comando da digitare è il seguente:

ls -al

Con questo comando elenchiamo tutte le risorse contenute nella directory corrente, e per ogni risorsa ne visualizziamo le caratteristiche principali. Nel caso di directory con molti elementi al suo interno, è possibile utilizzare l’opzione -C, che visualizza il contenuto della directory in più colonne.

MAN

Questo è forse il comando più importante: infatti digitando

man comando

verrà visualizzato un manuale che raccoglie tutte le informazioni sul comando passato come parametro. In sostanza, attraverso il comando man si possono conoscere e studiare tutti gli altri comandi. Nel caso in cui le istruzioni visualizzate siano particolarmente lunghe, allora si può premere “invio” per preseguire nella lettura: per uscire dal manuale è sufficiente digitare la combinazione di tasti “:q” .

SU

Il comando su permette di cambiare utente. Per questioni di sicurezza, non bisognerebbe mai lavorare con l’account di root: bisognerebbe sempre creare un proprio user con il quale si completa l’attività di tutti i giorni. A volte, però, quando ad esempio diventa necessario aggiornare alcune determinate configurazioni del sistema, viene richiesta la password di root. In alcuni casi estremi, invece, è proprio neessario fare l’accesso come utente root: ma per far questo non è necessario fare il logout.
Nel terminale, è sufficiente digitare su , premere “invio“, inserire la password di root, ed ecco che siamo diventati gli amministratori del sistema.

PHP -V

Il comando php -v permette di visualizzare nella shell le informazioni base circa il motore PHP installato sul proprio server o sistema Linux, informazioni come la versione, il copyright e la data dell’ultimo aggiornamento.

TOUCH

Questo comando permette la creazione di file. La sintassi è semplicissima: touch nomefile se vogliamo creare il file nella directory corrente, altrimenti touch /percorso/nomefile per creare il file nella directory desiderata.

( Questo elenco verrà constantemente aggiornato, quindi se ora non trovi quello che ti serve…torna a trovarci!! :P )