MINICRON

Da SIF TeAm Wiki.

Minicron

Scrivendo il manuale utente ho parlato della presenza di minicron che di seguito riporto, ma che ho deciso di approfondire ulteriormente.

Prima o poi un amministratore di un sistema ( nel nostro caso un sistema GNU/Linux con BusyBox ) avrà la necessità di eseguire delle operazioni ad intervalli regolari: eseguire un riavvio del sistema, il riavvio di una CAM emu, l’esecuzione di uno script, creare un backup della var o del kernel o di tutta l’img , riavviare il firewall o altri plugin.

Nei sistemi operativi Unix e Unix-like queste operazioni vengono effettuate grazie al comando crontab che sui sistemi GNU/Linux si basa sul demone (i demoni sono dei mini programmi /servizi che vengono integrati nel sistema operativo ) cron. Quindi il demone cron consente tramite il comando crontab lo scheduling di comandi, tali comandi mandati in esecuzione tramite crontab prendono il nome di cronjob.

Nei decoder che si basano su linux tutto è ridotto all’osso ed anche il demone cron è stato “riadattato” ( porting) per questa tipologia di ambiente e prende il nome, appunto, di Minicron. Nelle img del SIF Team tale demone è già presente e può essere attivato dal pannello di controllo. Tramite l’interfaccia grafica è facilmente impostabile l’orario di esecuzione degli script o dei comandi.

All’interno dell’immagine vengono già forniti pronti all’uso 8 script (/var/etc/SifTeam/minicrond/): stadby_decoder; stop_emu; weekepg_offline; restart_emu; restart_firewall; restart_openvpn; set_time; restart_decoder.

Immagine:minicron1.gif Immagine:minicron2.gif

Come gli screnshot precedenti mostrano, è possibile impostare, facendo scorrere le frecce accanto ad OK, gli script preparati da ngc1927 e settare l’orario di esecuzione degli stessi, ovviamente è possibile preparare dei propri script e farli eseguire.

Le due voci in alto sono molto semplici cioè servono a settare l’avvio del demone all’avvio del sistema.

Premendo il Immagine:sif_image_red_button.gif si esce dalla schermata;

premendo il Immagine:sif_image_green_button.gif si aggiunge e rende effettivo il minicrontab;

premendo il Immagine:sif_image_yellow.gif si resetta stoppa il demone ovvero tutti i minicrontab verranno cancellati;

premendo il Immagine:sif_image_blue_button.gif si avrà l’output dello script del demone minicron e si vedreanno i microntab ed i minicronjob che saranno eseguiti.

Riporto a titolo esemplificativo il contenuto del file restart_decoder.mcd :

#!/bin/sh
#
# Code by ngc1927
# This software is released without any warranty and the author
# is not responsable for any problem.
#
reboot
exit 0


Immagine:minicron3.gif

Va notato che gli script sono fatti per eventi giornalieri, ma il minicron permette anche di impostare il giorno specifico della settimana o l’intervallo di tempo a partire da una data ora in cui deve essere eseguito uno script.

Fino qui quello che già troviamo nel manuale utente, questa volta però ci interessa analizzare la sintassi e vedere in pratica come far eseguire dei propri script (lasciando spazio alla fantasia di ognuno ) o altri comandi non ricompresi tra quelli già preparati da ngc1927 e, infine, vedere dove conviene mettere questi script e come farli eseguire alla macchina.

Iniziamo ad analizzare la sintassi del demone minicron, prendendo spunto dalla documentazione fornitaci in francese dall’autore [Sito Autore] :

il formato dei parametri deve essere in formato testo di tipo GNU/Linux (potete usare anche Notepad++ su windows) Ogni campo deve essere separato dagli altri da un punto e virgola (;) .


Formato dei Parametri:
TYPE 1 Byte 1 o 2 Tipo di comando minicron:

• Tipo 1: viene eseguito una sola volta all’orario stabilito;
• Tipo 2: viene eseguito diverse volte a periodi regolari nell’intervallo di tempo tra l’orario di inizio e di fine con frequenza o di primi o di ore

VALID-DATE 10 Bytes gg/mm/anno Data a partire dalla quale deve essere eseguito il minicronjob
DofW-1 2 Bytes MO Indica che il minicronjob deve essere eseguito ogni Lunedi
DofW-2 2 Bytes TU Indica che il minicronjob deve essere eseguito ogni Martedì
DofW-3 2 Bytes WE Indica che il minicronjob deve essere eseguito ogni Mercoledì
DofW-4 2 Bytes TH Indica che il minicronjob deve essere eseguito ogni Giovedi
DofW-5 2 Bytes FR Indica che il minicronjob deve essere eseguito ogni Venerdì
DofW-6 2 Bytes SA Indica che il minicronjob deve essere eseguito ogni Sabato
DofW-7 2 Bytes SU Indica che il minicronjob deve essere eseguito ogni Domenica
TIME_1 5 Bytes 00:00 Ora inizio esecuzione del minicronjob

• Tipo 1: l'ordine deve essere eseguito al momento indicato
• Tipo 2: l'ordine deve essere eseguito la prima volta al momento indicato

TIME_2 5 Bytes 00:00 Ora di scadenza dei minicronjob di tipo 2, non esiste per il tipo 1
FREQ 3 o 4 Bytes MIN o HOUR Indica la tipologia,unità di misura, di frequenza di funzionamento le unità di misuar sono i minuti (MIN) o le ore (HOUR)- si applica solo al tipo 2
INTERVAL 1 o 2 Bytes da 1 a 60
da 1 a 24
Valore della frequenza di funzionamento ovvero ogni quanti minuti o ore viene eseguito il minicronjob di tipo 2
OCCURRENCE 5 Bytes massimo MIN o HOUR numero massimo di accadimento di un ordine
COMMAND 512 Bytes Massimo Il testo del comando che deve essere eseguito o lo script che deve essere eseguito

Analizziamo ora ogni singola voce :

  • Identificativo unico è il numero che indentifica il minicronjob per esempio 001
  • TYPE indica il tipo di comando che può eseguire minicron; le tipologie sono 2, la prima viene eseguita una volta ad un orario prestabilito, la seconda viene eseguita più volte in una fascia di tempo ad intervalli regolari
  • VALID-DATE è la data a partire dalla quale il minicronjob verrà eseguito
  • DofW-1 (MO) indica se il minicronjob verrà eseguito dal lunedì, e da qual momento ogni lunedì, successivo alla VALID-DATE, qualora non dovesse essere eseguito il lunedìva inserito il campo senza alcun valore ovvero va messo solo il “;”
  • DofW-2 (TU) indica se il minicronjob verrà eseguito dal martedì, e da qual momento ogni martedì, successivo alla VALID-DATE, qualora non dovesse essere eseguito il martedì va inserito il campo senza alcun valore ovvero va messo solo il “;”
  • DofW-3 (WE) indica se il minicronjob verrà eseguito dal mercoledì, e da qual momento ogni mercoledì, successivo alla VALID-DATE, qualora non dovesse essere eseguito il mercoledì va inserito il campo senza alcun valore ovvero va messo solo il “;”
  • DofW-4 (TH) indica se il minicronjob verrà eseguito dal giovedì, e da qual momento ogni giovedì, successivo alla VALID-DATE, qualora non dovesse essere eseguito il giovedì va inserito il campo senza alcun valore ovvero va messo solo il “;”
  • DofW-5 (FR) indica se il minicronjob verrà eseguito dal venerdì, e da qual momento ogni venerdì, successivo alla VALID-DATE, qualora non dovesse essere eseguito il venerdì va inserito il campo senza alcun valore ovvero va messo solo il “;”
  • DofW-6 (SA) indica se il minicronjob verrà eseguito dal sabato, e da qual momento ogni sabato, successivo alla VALID-DATE, qualora non dovesse essere eseguito il sabato va inserito il campo senza alcun valore ovvero va messo solo il “;”
  • DofW-7 (SU) indica se il minicronjob verrà eseguito dal domenica, e da qual momento ogni domenica, successivo alla VALID-DATE, qualora non dovesse essere eseguito il domenica va inserito il campo senza alcun valore ovvero va messo solo il “;”
  • TIME_1 per la tipologia 1 indica l’orario di inizio del minicronjob, per la tipologia 2 indica la prima esecuzione del minicronjob nell’intervallo di tempo prestabilito, il formato dell’orario è 00:00 h24
  • TIME_2 valido solo per la tipologia 2 indica l’orario a cui si conclude l’esecuzione del minicronjob, il formato dell’orario è 00:00 h24
  • FREQ valido solo per la tipologia 2 indica l’unità di misura dei valori dell’intervallo è può essere o in base ai minuti (MIN) o in base alle ore (HOUR)
  • INTERVAL valido solo per la tipologia 2 indica il valore della frequenza ovvero ogni quanti minuti o ogni quante ore deve essere ripetuto il minicronjob nell’intervallo di tempo
  • OCCURRENCE valido solo per la tipologia 2 indica quante volte deve essere eseguito il minicronjob
  • COMMAND indica cosa il minicronjob vero e proprio ovvero quale script o comando verrà eseguito


Passiamo ora ad alcuni esempi di minicron di tipologia 1 e di tipologia 2 :

001;1;01/06/2008;MO;TU;WE;TH;FR;SA;SU;05:00; /var/etc/SifTeam/minicrond/weekepg_offline.mcd & 

Ovvero abbiamo indicato l’identificativo unico (001), la tipologia del minicron (1), la data a partire dalla quale verrà eseguito il minicron(01/06/2008), i giorni in cui verrà eseguito praticamente tutti ( MO – TU –WE – TH – FR - SA – SU), l’orario a cui sarà eseguito, e cosa sarà eseguito (lo script con la tipica estensione del minicrond . mcd weekepg_offline.mcd in formato).

002;1;01/06/2008;;;;TH;;;SU;06:00; /var/etc/SifTeam/minicrond/weekepg_offline.mcd &

Ovvero abbiamo indicato l’identificativo unico (002), la tipologia del minicron (1), la data a partire dalla quale verrà eseguito il minicron(01/06/2008), i giorni in cui verrà eseguito in questo caso solo il giovedì e la domenica da notare che per i gioni non inseriti va messo comunque il de marcatore (; – ; –; – TH – ; - ; – SU), l’orario a cui sarà eseguito, e cosa sarà eseguito (lo script con la tipica estensione del minicrond . mcd weekepg_offline.mcd in formato).

003;2;01/06/2008;MO;TU;WE;TH;FR;SA;SU;05:00;10:00;MIN;15; /var/etc/SifTeam/minicrond/restart_decoder.mcd &

Ovvero abbiamo indicato l’identificativo unico (003), la tipologia del minicron (2), la data a partire dalla quale verrà eseguito il minicron(01/06/2008), i giorni in cui verrà eseguito praticamente tutti ( MO – TU –WE – TH – FR - SA – SU), l’orario a cui sarà eseguito per la prima volta,l’orario in cui terminerà di essere eseguito;la tipologia dell’unità di misura (MIN) in minuti in questo caso, ogni quanti minuti (15) e cosa sarà eseguito (lo script con la tipica estensione del minicrond . mcdrestart_decoder.mcd in formato).

004;2;01/06/2008;;;;TH;;;SU;05:00;10:00;HOUR;1;1; /var/etc/SifTeam/minicrond/restart_decoder.mcd &

Ovvero abbiamo indicato l’identificativo unico (004), la tipologia del minicron (2), la data a partire dalla quale verrà eseguito il minicron(01/06/2008), i giorni in cui verrà eseguito giovedì e domenica ( ;– ; –;– TH – ; - ; – SU), l’orario a cui sarà eseguito per la prima volta,l’orario in cui terminerà di essere eseguito;la tipologia dell’unità di misura (HOUR) in ore in questo caso, ogni quante ore (1), e quante volte (1) in pratica verrà eseguito ogni ora tra le 5:00 e le 10:00 e cosa sarà eseguito (lo script con la tipica estensione del minicrond . mcd restart_decoder.mcd in formato).

Ngc1927 ha fatto in modo che il minicron sulla SIF venga eseguito come tipologia 1 ogni giorno lasciando nell’interfaccia grafica la possibilità di settare l’orario e lo script da eseguire, tale scelta è dettata dal fatto che di solito l’utente medio fa eseguire determinate operazioni con cadenza giornaliera.

Per far eseguire ( quindi va reso eseguibile - chmod 755- o da telnet o via FTP) un vostro script basterà crearlo e metterlo con estensione .mcd nella directory /var/etc/SifTeam/minicrond/così vi apparirà tra gli script selezionabili di default.

Se invece volete che il vostro script venga eseguito non ogni giorno ( o magari di tipologia 2) potete personalizzarlo e poi inserire il minicronjob da voi creato direttamente nel file minicron.txt che si trova in /var/etc/SifTeam/conf/ ricordandovi di usare un editor di testo linux “compatibile” tipo Notepad++.

Infine, ho deciso di non trattare l’installazione stessa del minicron sulle img in quanto è già parte integrante delle img fatte dal SIF Team .


Autore: Sasulini

Strumenti personali
banner