Litterae.eu
Humanities & IT


Un altro cron per Linux

I sistemi Unix, come sanno gli sviluppatori web che di norma la trovano sui server Linux, hanno una comoda funzione cron; ossia una funzione bell’e pronta per eseguire in automatico comandi programmati ricorrenti. Sul proprio pc locale la sua comodità principale sta nel non dovere essere richiamata manualmente, ma nell’essere sempre attiva in secondo piano (o in background, all’inglese) dal momento dell’avvio del computer.
L’unica scomodità è che i nuovi incarichi da assegnare al sistema operativo tramite cron sono da inserire nel file etc/crontab, ossia in un’area del sistema che richiede accesso come super utente.
C’è però un’alternativa al cron vero e proprio: consiste nell’avviare un ciclo, un’iterazione, con shell script che tenga monitorato il passare del tempo e che ad un momento dato avvii determinate azioni. Certamente qualche sviluppatore web ha scritto qualcosa di omologo in JavaScript; è per esempio questa iterazione ciclica in JavaScript il motore di Arion.
Di seguito un esempio del codice base in shell script del ciclo:

{
while true ;
do
controllo=$(date +%S) ;
if [ "$controllo" = "00" ] ; then
# elenco delle operazioni da eseguire
fi ;
sleep 0.1 ;
done
} | uniq

Il ciclo prende il tempo ad ogni secondo e quando i secondi segnano 00, vale a dire ad ogni minuto, esegue una volta sola le operazioni che gli sono state assegnate.
Questa base può essere articolata a piacimento con ulteriori controlli temporali, con azioni condizionate, con operazioni multiple o a catena. Non solo: lo script può essere inserito tra le applicazioni da attivare all’avvio del computer e lavorerà invisibile in secondo piano, come demone (come si chiama su Linux, o servizio per dirla alla Windows).
È insomma il punto di partenza per lo sviluppo di moltissime applicazioni, il cui limite maggiore rimane la fantasia. Personalmente ne ho tratto una variante di Arion da far lavorare in locale e un assistente virtuale, pure locale, che gira in meno di 6 mega di RAM.


Site designed by litterae.eu. © 2004-2024. All rights reserved.
Info GDPR EU 2016/679: no cookies used, no personal data collected.