crontab e script sh

Installazione, configurazione e uso di Ubuntu come server: web, ftp, mail, news, proxy, dns e altro.
peps
Prode Principiante
Messaggi: 9
Iscrizione: giovedì 17 maggio 2007, 20:39

crontab e script sh

Messaggio da peps »

Ciao a tutti e scusatemi questa domanda, ma non riesco a capire il comportamento.

Ho uno script sh che vorrei far girare ogni tot minuti.

Codice: Seleziona tutto

 #!/bin/sh

minetest="/home/XXXX/minetest/bin/"
process=`ps uxw | grep minetest | grep -v grep | awk '{print $11}'`

if [ -z "$process" ]; then

  echo "Couldn't find MINETEST running, restarting it."
  cd "$minetest"
  /usr/bin/screen -A -m -d -S minetest ./minetest --server --world Lord-of-the-Test --config ../minetest.conf --gameid Lord-of-the-Test  --logfile ../Lord-of-the-Testlog.log
  echo "Server Started"

fi
se lanciato a mano fa egregiamente il suo lavoro.

se inserisco la stringa

Codice: Seleziona tutto

* * * * * /home/XXX/minetestlott.sh > /home/XXX/cronlog.log
nel crontab non fa niente, ma niente di niente e il file di log (che viene creato) e' vuoto.

i path mi sembrano tutti corretti.

versione ubuntu 16.04.

Come faccio a capire dove sbaglio? Grazie dell'aiuto.
pachisapiu

Re: crontab e script sh

Messaggio da pachisapiu »

se lo lanci manualmente va ?
Avatar utente
thece
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 13158
Iscrizione: lunedì 23 aprile 2007, 14:16
Distribuzione: Debian 12 (Bookworm) - KDE

Re: crontab e script sh

Messaggio da thece »

[Rieditato]

:ciao:

La riga inserita nel crontab è sicuramente da rivedere. Temporalmente, quando deve essere eseguito il tuo script?



Poi, per non saper ne leggere, ne scrivere, in cima allo script io ci metterei

Codice: Seleziona tutto

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
(se lo script viene eseguito come utente non privilegiato)

Codice: Seleziona tutto

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
(se lo script viene eseguito come root)

Se anche questo non dovesse funzionare occorrerebbe entrare nel merito dello script
peps
Prode Principiante
Messaggi: 9
Iscrizione: giovedì 17 maggio 2007, 20:39

Re: crontab e script sh

Messaggio da peps »

L’esecuzi È attualmente ogni minuto per troubleshooting.
Provo ad aggiungere la stringa del path, ma tutto gira nella /home dell’utente che deve eseguire lo script.
Lo script controlla se un processo è in esecuzione e in caso negativo lo lancia.
Avatar utente
thece
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 13158
Iscrizione: lunedì 23 aprile 2007, 14:16
Distribuzione: Debian 12 (Bookworm) - KDE

Re: crontab e script sh

Messaggio da thece »

Modifica la direttiva nel crontab così

Codice: Seleziona tutto

* * * * * /home/XXX/minetestlott.sh > /home/XXX/cronlog.log 2>&1
in questo modo l'output dello script, diretto sia verso standard output che verso standard error, verrà scritto correttamente sul file /home/XXX/cronlog.log



Per il resto direi che bisogna debuggare pesantemente lo script. Non ti resta che inserire tanti bei echo :D
Come ti ho scritto in precedenza, non sono entrato nel merito dello script, quindi la customizzazione della variabile di ambiente PATH era solo un suggerimento "buttato là". Spesso risolve poichè la variabile PATH impostata per crontab è molto restrittiva e non permette di raggiungere molti comandi. E' evidente che nel tuo caso questa cosa non vale.
Scrivi risposta

Ritorna a “Ubuntu su server”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti