Come Pianificare Operazioni con Cron

Posted on by

I comandi Crontab (cron deriva dal greco chronos che significa tempo e Tab che significa scheda/tavola) si trovano in sistemi operativi Unix e Unix-like, e sono utilizzati per programmare attività da eseguire periodicamente. Per vedere i comandi Crontab attualmente in esecuzione sul sistema, è possibile aprire un terminale ed eseguire:

sudo crontab -l
Per modificare l’elenco dei cronjobs è possibile eseguire:
sudo crontab -e
Questo comando aprirà l’editor di default (potrebbe essere vi o pico) per manipolare il crontab. Se si salva e si esce dall’editor, tutti i cronjobs vengono salvati nel crontab. I Cronjobs sono scritti nel seguente formato:
* * * * * /bin/execute/this/script.sh
Istruzioni di scheduling

Come potete vedere ci sono 5 stelle. Le stelle rappresentano parti differenti di una data nel seguente ordine:

1. minuto (da 0 a 59)
2. ora (da 0 a 23)
3. giorno del mese (da 1 a 31)
4. mese (da 1 a 12)
5. giorno della settimana (da 0 a 6) (0=Domenica)

La stella, o un asterisco, indicano un valore qualsiasi. Usiamo nuovamente l’esempio precedente per capire meglio:

* * * * * /bin/execute/this/script.sh
Sono tutti asterischi! Questo significa che il comando /bin/execute/this/script.sh: verrà eseguito ogni minuto di ogni ora di ogni giorno del mese di ogni mese e ogni giorno della settimana.
Se vogliamo programmare lo script per l’esecuzione alle 01:00 di ogni Venerdì, avremmo bisogno dei seguenti cronjob:

0 1 * * 5 /bin/execute/this/script.sh
Se vogliamo programmare lo script per l’esecuzione alle 01:00 di ogni giorno dal Lunedi al Venerdì, avremmo bisogno dei seguenti cronjob:

0 1 * * 1-5 /bin/execute/this/script.sh
Per eseguire uno script ogni 10 minuti :
0,10,20,30,40,50 * * * * /bin/execute/this/script.sh
Per il primo campo si può anche utilizzare una parola invece di un numero:
@reboot Run once, at startup
@yearly Run once a year “0 0 1 1 *”
@annually (same as @yearly)
@monthly Run once a month “0 0 1 * *”
@weekly Run once a week “0 0 * * 0”
@daily Run once a day “0 0 * * *”
@midnight (same as @daily)
@hourly Run once an hour “0 * * * *

Lasciando il resto dei campi vuoti:

@daily /bin/execute/this/script.sh

Memorizzare l’output di crontab

Di default Cron salva l’output di /bin/execute/this/script.sh nella casella postale dell’utente (root in questo caso) ma è preferibile che l’output venga salvato in un file di registro separato. Ecco come fare:
*/10 * * * * /bin/execute/this/script.sh 2>&1 >> /var/log/script_output.log

Linux può salvare i log a diversi livelli: Standard output (STDOUT) e standard errors (stderr). Il valore che identifica STDOUT è 1, quello che identifica STDERR è 2. Ad esempio per salvare STDERR in STDOUT :
2>&1

Se vogliamo ad esempio salvare il log dentro /var/log/script_output.log:
>> /var/log/script_output.log

Se invece si vogliono inviare i log ad un’altra casella di posta si potrà utilizzare il seguente comando:

MAILTO=”yourname@yourdomain.com”

Se si vuole ricevere il log solo nella propria casella ssicurarsi che il pacchetto mailx sia installato e cambiare il cronjob così:
*/10 * * * * /bin/execute/this/script.sh 2>&1 | mail -s “Cronjob ouput” yourname@yourdomain.com

Category: Guide

Creare un Certificato SSL Self Signed su Linux

Posted on by

Eseguire i seguenti comandi per installare i pacchetti necessari per OpenSSL, il toolkit open source SSL.
Sistemi Debian/Ubuntu:

apt-get update
apt-get upgrade
apt-get install openssl
mkdir /etc/ssl/localcerts
Sistemi CentOS/Fedora:
yum install openssl
mkdir /etc/ssl/localcerts
Creazione di un certificato self-signed

Creeremo un certificato che potrebbe essere utilizzato, per esempio, per un sito web personale ospitato con Apache. Eseguire i seguenti comandi (si noti che il comando openssl si estende su due righe):
openssl req -new -x509 -days 365 -nodes -out /etc/ssl/localcerts/apache.pem -keyout /etc/ssl/localcerts/apache.key
chmod 600 /etc/ssl/localcerts/apache*
Ti verranno chiesti alcuni valori di configurazione. Immettere i valori appropriati per l’organizzazione e il server. In questo esempio verrà creato un certificato valido per 365 giorni. Abbiamo specificato il nome FQDN (fully qualified domain name) del VPS alla voce “Common Name”, perché questo certificato verrà utilizzato per generici servizi SSL. Il flag -nod indica a OpenSSL di creare un certificato che non richiede una passphrase. Se questa opzione viene omessa, verrà richiesto di inserire una passphrase sulla console per sbloccare il certificato ogni volta che l’applicazione server che lo utilizza viene riavviata (di solito questo accadrà quando si riavvia il VPS).

Una volta che il certificato è stato generato, è necessario configurare il software lato server in modo che faccia riferimento al file del certificato.

Category: Guide

Editor di Testo Linux

Posted on by

Linux è altrettanto adatto per l’elaborazione di testi, come qualsiasi altro sistema operativo. Ci sono molti ottimi programmi di elaborazione testi per Linux come AbiWord, KWord, KOffice e OpenOffice.org che non sono oggetto di questa guida.

Perché usare un editor di testo?

Un editor di testo è come un elaboratore di testi, senza un sacco di funzioni. Tutti i sistemi operativi sono dotati di un editor di testo base. Linux viene fornito con diversi. Il principale uso di un editor di testo è creare un file senza formattazione in modo che sia leggibile anche da altri programmi.

L’editor di testo “vi”

L’editor di testo più importante per Linux si chiama ‘vi’. Questo è un programma che viene da UNIX. Vi è una versione più recente chiamata ‘vim’ che significa ‘vi Improved’ (migliorato). Il problema di ‘vim’ o ‘vi’ è che sono molto complicati da usare. Dovete ricordare molte combinazioni di tasti per fare cose che altri editor di testo fanno in modo molto più semplice.

Lavorare con i ‘vi’

Creiamo un file di testo. Tipo:

$vi tryvi
Vedrete una linea di tilde lungo il lato sinistro e il nome ‘tryvi’ in fondo e [nuovo file]. Per scrivere qualcosa, è necessario premere ESC e il tasto ‘i’ (i per l’inserimento). Anche se non si preme ‘ESC-i’ di solito si ottiene lo stesso effetto dopo aver premuto alcuni tasti. Occorre abituarsi in modo da non finire per scrivere ‘ar John’ invece di ‘Dear John’.

Premere ESC + ‘i’ quindi digitare: ciao vi

Se per errore si è scritto jello vi o jello bi è sempre possibile cancellare con il tasto backspace.

Per salvare il file, è necessario premere il tasto ESC e poi il tasto due punti ‘:’ successivamente il tasto ‘w’ (scrittura)

Per salvare il file e uscire da vi, è necessario premere ESC, il tasto ESC due punti ‘:’ successivamente i tasti wq (scrittura, quit)

Per uscire senza salvare, premere ESC e il tasto due punti ‘:’ e poi ‘q’. Un messaggio richiede se si desidera salavare il lavoro appena eseguito.

Se si preme ESC ‘: ‘ q! ‘con un punto esclamativo, vi non salverà le modifiche.

Joe

Joe è un altro editor di testo più facile da usare. Per utilizzare ‘Joe’ digitare:
$joe tryjoe
Non vedrete la tilde come vi. La maggior parte dei comandi di Joe sono basati sui tasti CTRL-K e una terza chiave. La più importante di queste è CTRL-KH che lancia il cmando ‘aiuto’. L’aiuto vi mostra le combinazioni di tasti da usare con ‘Joe’.

La cosa più importante di ‘Joe’ è il concetto logico che si può iniziare a scrivere quello che si vuole.

Per salvarlo, premere CTRL-K-D. Per salvare e uscire, CTRL-K-X.

Per uscire senza salvare, CTRL-C, (senza la K).

Se volete vedere le altre caratteristiche di ‘Joe’, premere CTRL-KH.

Una caratteristica interessante di ‘Joe’ è che se si modifica un file esistente il file precedente viene salvato con una tilde alla fine, come ‘tryjoe ~’ che potrebbe essere molto utile in caso di errori.

Pico

‘pico’ è un altro semplice editor di testo. Se si digita:
$pico trypico
Potete vedere i comandi necessari in ‘pico’ specificato in basso. Si può iniziare a scrivere tutto quello che si vuole.

Per salvare il file, premere CTRL-o. Per salvare e chiudere o semplicemente per uscire, premere CTRL-x

Pico chiederà sempre se si è sicuri di quello che si sta facendo.

Category: Guide

Come Installare e Configurare FlySpray su Linux

Posted on by

I software Trac sono programmi che permetto a programmatori e beta tester di tenere traccia dei bugs rilevati su di un determinato programma. I Trac possono essere anche utilizzati per tenere traccia di un elenco di task/problemi da sistemare. Molti sistemi Trac permettono agli utilizzatori del software di riportare direttamente dei bugs. Utilizzare un sistema di bug tracking è sicuramente molto utile durante lo sviluppo di programmi software.

In questa guida spieghiamo come installare un software Trac: FlySpray

Nel caso in cui utilizziate una distribuzione Debian o Ubuntu per prima cosa lanciate questi comandi per essere certi che il sistema sia aggiornato:

apt-get update
apt-get upgrade
apt-get install unzip libgv-php5
Nel caso in cui utilizziate una distribuzione CentOS o Fedora i comandi da utilizzare sono i seguenti:
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
yum update
yum install unzip graphviz graphiz-php
Ai fini di questa guida partiremo dal presupposto che abbiate già installato un virtual host per il dominio example.com i cui file sono contenuti nella directory /srv/www/example.com/public_html/. Inoltre in questa guida installeremo Flyspray come sito di default per example.com. Modificate le indicazioni della guida sulla base del vostro specifico sistema/esigenze.

Installazione

In questa guida prendiamo in considerazione l’installazione della versione 0.9.9.6 di Flyspray. Controllate tramite questo link: link che la versione 0.9.9.6 sia ancora la versione stabile più recente di Flyspray. Utilizzare l’ultima versione disponibile è molto importante al fine di prevenire attacchi di malintenzionati che sfruttano eventuali vulnerabilità del software. Lanciate questa sequenza di comandi per scaricare, scompattare e installare Flyspray sul vostro server:
mkdir -p /srv/www/example.com/src/
mkdir -p /srv/www/example.com/public_html/
cd /srv/www/example.com/public_html/
wget http://flyspray.org/flyspray-0.9.9.6.zip
unzip flyspray-0.9.9.6.zip
mv flyspray-0.9.9.6.zip /srv/www/example.com/src/
touch flyspray.conf.php
chmod 777 flyspray.conf.php cache/ attachments/
A questo punto collegarsi con un browser al seguente indirizzo http://example.com/flyspray/setup/ e seguire le istruzioni per completare la configurazione di FlySpray.

Una volta terminata la configurazione, sarete automaticamente collegati al pannello di amministrazione tramite il quale potrete aggiornare il vostro profilo personale.

Un messaggio vi indicherà di cancellare la directory: http://example.com/flyspray/setup/

Per effettuare questa operazione e assegnare i permessi corretti ai files, utilizzate questi comandi:

rm -rf /srv/www/example.com/public_html/setup/
chmod 755 /srv/www/example.com/public_html/flyspray.conf.php

Configurazione

Potrete configurare il sistema di notifica automatica(che utilizza Jabber per inviare notifica automatiche di nuove attività), impostando il parametro reminder_daemon=1 dentro il file: flyspray.conf.php

Premete su ‘Manage Project’ per impostare il progetto, i gruppi degli utenti e gli altri parametri.

Category: Guide

Come Utilizzare il Comando Top su Linux

Posted on by

Il comando top è stato pensato per aiutare gli utenti ad individuare i processi attivi e quando alcuni applicativi utilizzano la memoria RAM o la CPU di più rispetto a quando dovrebbero.

Il comando top è molto semplice da usare. A video viene generalmente visualizzato un risultato simile a questo:

top – 22:09:08 up 14 min, 1 user, load average: 0.21, 0.23, 0.30
Tasks: 81 total, 1 running, 80 sleeping, 0 stopped, 0 zombie
Cpu(s): 9.5%us, 31.2%sy, 0.0%ni, 27.0%id, 7.6%wa, 1.0%hi, 23.7%si, 0.0%st
Mem: 255592k total, 167568k used, 88024k free, 25068k buffers
Swap: 524280k total, 0k used, 524280k free, 85724k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3166 apache 15 0 29444 6112 1524 S 6.6 2.4 0:00.79 httpd
3161 apache 15 0 29444 6112 1524 S 5.9 2.4 0:00.79 httpd
3164 apache 15 0 29444 6112 1524 S 5.9 2.4 0:00.75 httpd
3169 apache 15 0 29444 6112 1524 S 5.9 2.4 0:00.74 httpd
3163 apache 15 0 29444 6112 1524 S 5.6 2.4 0:00.76 httpd
3165 apache 15 0 29444 6112 1524 S 5.6 2.4 0:00.77 httpd
3167 apache 15 0 29444 6112 1524 S 5.3 2.4 0:00.73 httpd
3162 apache 15 0 29444 6112 1524 S 5.0 2.4 0:00.77 httpd
3407 root 16 0 2188 1012 816 R 1.7 0.4 0:00.51 top
240 root 15 0 0 0 0 S 0.3 0.0 0:00.08 pdflush
501 root 10 -5 0 0 0 S 0.3 0.0 0:01.20 kjournald
2794 root 18 0 12720 1268 560 S 0.3 0.5 0:00.73 pcscd
1 root 15 0 2060 636 544 S 0.0 0.2 0:03.81 init
2 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/0
3 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
4 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
5 root 10 -5 0 0 0 S 0.0 0.0 0:00.07 events/0
La prima linea dall’alto:
top – 22:09:08 up 14 min, 1 user, load average: 0.21, 0.23, 0.30
“22:09:08? indica l’ora corrente; “up 14 min” indica da quanto tempo il sistema è stato avviato; “1 user” quanti utenti sono collegati al sistema; “load average: 0.21, 0.23, 0.30? indica il carico medio del server (1minute, 5 minutes, 15 minutes).
Il carico medio è il risultato di una serie di calcoli per valutare l’utilizzo medio della CPU in un determinato periodo di tempo. Un carico medio pari a 1 significa che la CPU è completamente utilizzata ma i programmi non necessitano di attendere per essere utilizzati. Un carico medio superiore a 1 indica che i programmi dovranno aspettare per essere utilizzati e che il sistema diventerà più lento. Se il carico medio è molto sopra a e il server è molto lento, consigliamo di espandere il servizio e richiederne uno più performante.
La seconda linea dall’alto:
Tasks: 82 total, 1 running, 81 sleeping, 0 stopped, 0 zombie
Mostra il numero dei processi e il loro stato attuale
La terza linea dall’alto:
Cpu(s): 9.5%us, 31.2%sy, 0.0%ni, 27.0%id, 7.6%wa, 1.0%hi, 23.7%si, 0.0%st
Mostra il dettaglio di utilizzo della CPU. “9.5%us” i processi utente occupano il 9.5%; “31.2%sy” i processi di sistema occupano il 31.2%; “27.0%id” la percentuale di CPU disponibile; “7.6%wa” tempo di attesa IO della CPU.
Come prima cosa contrllare il valore del %id per vedere quanta parte di CPU è disponibile. Se il valore di %id è basso allora controllare %us e %wa per capire che occupa la CPU.
La quarta linea dell’alto:
Mem: 255592k total, 167568k used, 88024k free, 25068k buffers
Swap: 524280k total, 0k used, 524280k free, 85724k cached
Mostra l’utilizzo della memoria: “255592k total” è la memoria totale del sistema; “167568K used” è la parte di RAM che contiene dati; “88024k free” è la parte di RAM che non contiene dati; “25068K buffers and 85724k cached” è la parte di RAM che contiene dati per l’IO.
Per calcolare la quantità corretta di memoria disponibile bisogna usare la seguente formula :
memoria libera + (memoria buffers + memoria cached)
88024k + (25068k + 85724k) = 198816k
Per calcolare quanta memoria è usata dai programmi :
memoria usata – (memoria buffers + memoria cached)
167568k – (25068k + 85724k) = 56776k
Top visualizza i processi ordinati sulla base della quantità di CPU che utilizzano in ordine decrescente. I processi vengono indicati con questi dati :
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3166 apache 15 0 29444 6112 1524 S 6.6 2.4 0:00.79 httpd
PID – l’ID del processo
USER – l’utente che ha lanciato il processo
PR – la priorità del processo
NI – l’indice del processo (un valore più alto indica una priorità minore)
VIRT – il valore complessivo di memoria virtuale utilizzata
RES – la dimensione del task residente
SHR – la quantità di memoria condivisa utilizzata
S – stato del task. I valori possibili sono S (sleeping), D (uninterruptible sleep), R (running), Z (zombies), o T (stopped or traced)
%CPU – percentuale di CPU utilizzata
%MEM – percentuale di memoria utilizzata
TIME+ – il tempo totale di CPU utilizzata
COMMAND – comando lanciato

Lavorare con TOP

Ora che abbiamo individuato le informazioni che vengono fornite da TOP possiamo vedere come modificare come queste informazioni vengono visualizzate. Per modificare la visualizzazione basta premere uno di questi tasti :

M – Ordina sulla base della memoria in uso
P – Ordina sulla base della CPU in uso
T – Ordina sulla base del tempo complessivo
z – Cambia colore
k – Chiudi un processo
q – Esci
Ad esempio per eliminare il processo con un PID = 3161, premere “k” e quindi inserire il numero di PID : 3161.

Category: Guide