[Risolto] Creare cron

Installazione, configurazione e uso di Ubuntu come server: web, ftp, mail, news, proxy, dns e altro.
viro
Prode Principiante
Messaggi: 137
Iscrizione: mercoledì 14 luglio 2010, 17:55
Sesso: Maschile

[Risolto] Creare cron

Messaggio da viro »

Salve a tutti, ho bisogno di creare un cron ma non so come fare, in pratica ho bisogno che uno script in php venga eseguito ongi giorno ogni due ore.

Come posso fare, mi potete aiutare?

Grazie
Ultima modifica di viro il domenica 9 gennaio 2011, 23:42, modificato 1 volta in totale.
Ptah
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1269
Iscrizione: mercoledì 13 dicembre 2006, 13:19
Contatti:

Re: Creare cron

Messaggio da Ptah »

man crontab <-- per una panoramica di cron
man -e 5 crontab <-- per approfondimenti sulla sintassi delle righe di cron

:)
Non sono chi dico di essere ;) || Problema risolto?Metti [RISOLTO] nel titolo ;)
Script per Firewall Iptables
Guida Php ufficiale (in inglese)
viro
Prode Principiante
Messaggi: 137
Iscrizione: mercoledì 14 luglio 2010, 17:55
Sesso: Maschile

Re: Creare cron

Messaggio da viro »

Grazie ho letto un po, ma senza qualche esempio spiegato sopratutto in italiano non riesco a venirne a capo.
Grazie
viro
Prode Principiante
Messaggi: 137
Iscrizione: mercoledì 14 luglio 2010, 17:55
Sesso: Maschile

Re: Creare cron

Messaggio da viro »

Salve, ho trovato una guida proprio su ubuntu molto utile, ora ho capito la sintassi, ma non ho capito come fare eseguire lo script ogni due ore, nel senso ho capito che se dopo il comando crontab -e inserisco questo:
5 3 * * * /usr/bin/file.php
ad esempio esegue lo script tutti i giorni alle 03:05, ma come faccio a fargli capire di eseguirlo ogni due ore?

Mica devo creare un cron per ogni due ore, nel senso creo più di un crontab:

5 3 * * * /usr/bin/apt-get update
5 5 * * * /usr/bin/apt-get update
5 7 * * * /usr/bin/apt-get update

Grazie
Ptah
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1269
Iscrizione: mercoledì 13 dicembre 2006, 13:19
Contatti:

Re: Creare cron

Messaggio da Ptah »

azz...è dura imparare a usare linux senza conoscere l'inglese... :S

Codice: Seleziona tutto

Step values can be used in conjunction with ranges.  Following a range with ``/<number>'' specifies skips of the  number's  value  through  the  range.   For  example,
       ``0-23/2''  can  be  used  in the hours field to specify command execution every other hour (the alternative in the V7 standard is ``0,2,4,6,8,10,12,14,16,18,20,22'').
       [b]Steps are also permitted after an asterisk, so if you want to say ``every two hours'', just use ``*/2''.[/b]
quindi la riga sarà
(minuti ore giorno_del_mese mese numero_giorno_settimana)

0 */2 * * * /path/to/script.php

ovvero al minuto 0, ogni due ore, tutti i giorni del mese, tutti i mesi, tutti i giorni della settimana (da Lun a Dom)
Non sono chi dico di essere ;) || Problema risolto?Metti [RISOLTO] nel titolo ;)
Script per Firewall Iptables
Guida Php ufficiale (in inglese)
viro
Prode Principiante
Messaggi: 137
Iscrizione: mercoledì 14 luglio 2010, 17:55
Sesso: Maschile

Re: Creare cron

Messaggio da viro »

Grazie ora provo e domani dopo il controllo del cron metto risolto.

Oppure c'è un modo per creare un file di log ad esempio per visionare il corretto funzionamento del cron?
Avatar utente
Stealth
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 17366
Iscrizione: martedì 31 gennaio 2006, 22:55
Desktop: Gnome
Distribuzione: Ubuntu 22.04 LTS

Re: Creare cron

Messaggio da Stealth »

Controlla anche di lasciare vuota l'opzione mailto......che ogni 2 ore per tutta la vita mi sembra un po' troppo  :)
ciao
viro
Prode Principiante
Messaggi: 137
Iscrizione: mercoledì 14 luglio 2010, 17:55
Sesso: Maschile

Re: Creare cron

Messaggio da viro »

Scusa quale opzione mailto  :-[
Ptah
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1269
Iscrizione: mercoledì 13 dicembre 2006, 13:19
Contatti:

Re: Creare cron

Messaggio da Ptah »

viro ha scritto: Grazie ora provo e domani dopo il controllo del cron metto risolto.

Oppure c'è un modo per creare un file di log ad esempio per visionare il corretto funzionamento del cron?
In /var/log c'è il file "cron.log" per un'esame spot, altrimenti puoi redirigere l'ouput a un file...

0 */2 * * * /path/to/script.php >> /path/to/choosen/logfile.log 2>&1

(il file /path/to/choosen/logfile.log deve esistere e avere i permessi giusti)

mailto è una variabile che può essere scritta nel file crontab

Codice: Seleziona tutto

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=paul

# m h dom mon dow user    command
42 6 * * *        root    run-parts --report /etc/cron.daily
Non sono chi dico di essere ;) || Problema risolto?Metti [RISOLTO] nel titolo ;)
Script per Firewall Iptables
Guida Php ufficiale (in inglese)
Avatar utente
Stealth
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 17366
Iscrizione: martedì 31 gennaio 2006, 22:55
Desktop: Gnome
Distribuzione: Ubuntu 22.04 LTS

Re: Creare cron

Messaggio da Stealth »

viro ha scritto: Scusa quale opzione mailto  :-[
Cron avvisa quando compie un'azione, mandando una mail. Ma nel tuo caso sono un po' troppo frequenti e rischiano di spammarti la casella di posta.
Se quel cron fosse il mio io aprirei il file con

Codice: Seleziona tutto

crontab -e
e verificherei che (oppure lo scrivi tu, su in cima all'inizio) ci sia la linea con l'opzione mailto vuota, così

Codice: Seleziona tutto

MAILTO=""
poi salvi e chiudi, e dovresti essere salvo  :)
ciao

edit: ops, preceduto. segui i consigli di ptah che ne sa sicuramente più di me  ;)
Ptah
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1269
Iscrizione: mercoledì 13 dicembre 2006, 13:19
Contatti:

Re: Creare cron

Messaggio da Ptah »

Stealth ha scritto: edit: ops, preceduto. segui i consigli di ptah che ne sa sicuramente più di me  ;)
(b2b)
Non sono chi dico di essere ;) || Problema risolto?Metti [RISOLTO] nel titolo ;)
Script per Firewall Iptables
Guida Php ufficiale (in inglese)
viro
Prode Principiante
Messaggi: 137
Iscrizione: mercoledì 14 luglio 2010, 17:55
Sesso: Maschile

Re: Creare cron

Messaggio da viro »

Grazie, ad entrambi per la disponibilità, comunque ho avviato il cron per l'esecuzione del file ogni cinque minuti per provare inserendo anche il percorso per il file di log, ora vedo se viene eseguito e vi faccio sapere.

Grazie ancora  :)
viro
Prode Principiante
Messaggi: 137
Iscrizione: mercoledì 14 luglio 2010, 17:55
Sesso: Maschile

Re: Creare cron

Messaggio da viro »

Ho aspettato per dieci minuti, ma lo script non viene eseguito, e neppure il file di logo mi da alcun errore, ho impostato il file di logo con gli opportuni permessi quali 777, ma rimane comunque vuoto, nessun errore.

Perchè non viene eseguito?

Grazie
Ptah
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1269
Iscrizione: mercoledì 13 dicembre 2006, 13:19
Contatti:

Re: Creare cron

Messaggio da Ptah »

sudo ps -ef | grep -i cron
sudo tail -20 /var/log/cron.log

e posta il risultato dei due comandi :)
Non sono chi dico di essere ;) || Problema risolto?Metti [RISOLTO] nel titolo ;)
Script per Firewall Iptables
Guida Php ufficiale (in inglese)
viro
Prode Principiante
Messaggi: 137
Iscrizione: mercoledì 14 luglio 2010, 17:55
Sesso: Maschile

Re: Creare cron

Messaggio da viro »

Questo è il risultato del primo comando:

root      1907    1  0  2010 ?        00:00:01 cron
root      2511  2441  0 00:09 pts/1    00:00:00 crontab -e
root      2512  2511  0 00:09 pts/1    00:00:00 /bin/sh -c /usr/bin/sensible-editor /tmp/crontab.M5uGs1/crontab
root      2513  2512  0 00:09 pts/1    00:00:00 /bin/sh /usr/bin/sensible-editor /tmp/crontab.M5uGs1/crontab
root      8098  2441  0 00:23 pts/1    00:00:00 crontab -e
root      8099  8098  0 00:23 pts/1    00:00:00 /bin/sh -c /usr/bin/sensible-editor /tmp/crontab.Zb0w0R/crontab
root      8100  8099  0 00:23 pts/1    00:00:00 /bin/sh /usr/bin/sensible-editor /tmp/crontab.Zb0w0R/crontab
root      8108  8100  0 00:23 pts/1    00:00:00 editor /tmp/crontab.Zb0w0R/crontab
root      8109  2441  0 00:23 pts/1    00:00:00 crontab -e
root      8110  8109  0 00:23 pts/1    00:00:00 /bin/sh -c /usr/bin/sensible-editor /tmp/crontab.hlitwL/crontab
root      8111  8110  0 00:23 pts/1    00:00:00 /bin/sh /usr/bin/sensible-editor /tmp/crontab.hlitwL/crontab
root      8119  8111  0 00:23 pts/1    00:00:00 editor /tmp/crontab.hlitwL/crontab
root      8173  2441  0 00:34 pts/1    00:00:00 crontab -e
root      8174  8173  0 00:34 pts/1    00:00:00 /bin/sh -c /usr/bin/sensible-editor /tmp/crontab.PhVcl6/crontab
root      8175  8174  0 00:34 pts/1    00:00:00 /bin/sh /usr/bin/sensible-editor /tmp/crontab.PhVcl6/crontab
root      8183  8175  0 00:34 pts/1    00:00:00 editor /tmp/crontab.PhVcl6/crontab
root      8566  2441  0 01:33 pts/1    00:00:00 grep --color=auto -i cron


Mentre questo è il risultato del secondo comando:
tail: cannot open `/var/log/cron.log' for reading: No such file or directory
Ptah
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1269
Iscrizione: mercoledì 13 dicembre 2006, 13:19
Contatti:

Re: Creare cron

Messaggio da Ptah »

Allora...intanto hai un po' di sessioni di editing cron aperte...potrebbe crearti casino!
Non è abilitato il log dei cron, e questo può essere un problema, ma fanulla
Intanto chiudi tutte le sessioni di editing di cron (per evrificare se ne hai ancora rifai il comando sudo ps -ef | grep -i cron. Se non ci sono righe tipo
/bin/sh -c /usr/bin/sensible-editor /tmp/crontab.PhVcl6/crontab
allora dovresti essere a posto
Non sono chi dico di essere ;) || Problema risolto?Metti [RISOLTO] nel titolo ;)
Script per Firewall Iptables
Guida Php ufficiale (in inglese)
viro
Prode Principiante
Messaggi: 137
Iscrizione: mercoledì 14 luglio 2010, 17:55
Sesso: Maschile

Re: Creare cron

Messaggio da viro »

Salve, ancora qui, ho impostato il cron, e il file per il log, nel file del log mi trovo questo errore e lo script non viene eseguito, ecco l'errore:

/var/www/vhosts/queen/miosito.it/httpdocs/miosito/micro.php: 1: cannot open ?php
: No such file
/var/www/vhosts/queen/miosito.it/httpdocs/miosito/micro.php: 2: Syntax error: word unexpected (expecting ")")
/var/www/vhosts/queen/miosito.it/httpdocs/miosito/micro.php: 1: cannot open ?php
: No such file
/var/www/vhosts/queen/miosito.it/httpdocs/miosito/micro.php: 2: Syntax error: word unexpected (expecting ")")

Nel mio file php le prime due righe sono le seguenti:
<?php
require_once ('configure.php');

Perchè mi da questo errore?

Grazie
Ptah
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1269
Iscrizione: mercoledì 13 dicembre 2006, 13:19
Contatti:

Re: Creare cron

Messaggio da Ptah »

Alt...allora...stai chiamando uno script Php, quindi ti conviene richiamarlo direttamente "dal browser", per così dire, ovvero ti conviene qualcosa del genere

Codice: Seleziona tutto

0 */2 * * * /usr/bin/wget --tries=1 --timeout=10 -q -o /dev/null -O /dev/null http://miosito/micro.php
altrimenti devi chiamare lo script con php e aggiustare tutti gli include/require del file in modo che siano assoluti (se lo script NON viene usato anche nel sito vero e proprio) :)
Non sono chi dico di essere ;) || Problema risolto?Metti [RISOLTO] nel titolo ;)
Script per Firewall Iptables
Guida Php ufficiale (in inglese)
viro
Prode Principiante
Messaggi: 137
Iscrizione: mercoledì 14 luglio 2010, 17:55
Sesso: Maschile

Re: Creare cron

Messaggio da viro »

Grazie, e per scrivere il risultato nel file di log con questo comando come faccio?

Posso usare alla fine del comando che hai scritto questo come mi hai detto ieri?

>> /path/to/choosen/logfile.log 2>&1

dove poi ci sarà la mia path del sito
Ultima modifica di viro il domenica 9 gennaio 2011, 23:24, modificato 1 volta in totale.
Ptah
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1269
Iscrizione: mercoledì 13 dicembre 2006, 13:19
Contatti:

Re: Creare cron

Messaggio da Ptah »

No.
In questo caso devi usare le funzioni di wget.
-o file indica il file di log
-O file indica dove verrà scritto il file ricevuto
quindi nel tuo caso dovresti far diventare

-o /path/to/choosen/logfile.log
mentre il -O lascialo a /dev/null perchè non credo ti interessi l'output del file php (cioè quello che visualizzeresti se chiamassi il file col browser). -O è una o maiuscola, -o una o minuscola, nessuno dei due è uno zero :)
Non sono chi dico di essere ;) || Problema risolto?Metti [RISOLTO] nel titolo ;)
Script per Firewall Iptables
Guida Php ufficiale (in inglese)
Scrivi risposta

Ritorna a “Ubuntu su server”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 1 ospite