Newsgroup: it.comp.os.linux.debian
Titolo: Aiuto con cron

Ciao a tutti
 
Ho un problema con cron, ho provato a venirne a capo, ma da solo non ci
riesco.
 
Ogni ora ricevo un'email con oggetto "Cron <pi@rpi> root cd / && run-parts
--report /etc/cron.hourly" e contenuto "/bin/sh: 1: root: not found"
 
Analogamente una volta al giorno arriva un'email simile (cron.daily).
 
Questo � il contenuto di /etc/crontab
http://08-07-1983.com/crontab
 
 
Questo il contenuto di /etc/default/cron
http://08-07-1983.com/cron
 
 
Questo il contenuto dell'unico script in /etc/cron.hourly/
http://08-07-1983.com/fake-hwclock
 
 
Se servono altre informazioni, provvedo :-)
 
Saluti Boiler
 
-- 
 
 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it
 
 
 

   "/bin/sh: 1: root: not found"
 
Non trova /bin/sh?
 

 Non trova /bin/sh?
 
Strano... se digito "which sh" mi risponde "/bin/sh".
 
Dimenticavo, un altro utente, sullo stesso sistema ha questo crontab:
0 22 * * fri cd /home/pi/scripts/ && /bin/bash ./patch.sh >/dev/null
 
patch.sh inizia con #!/bin/bash invece di #!/bin/sh e non ci sono problemi.
 
La differenza � che non � in /etc/crontab ma inserito con "crontab -e".


 lrwxrwxrwx 1 root root 4 15 ott 00.44 /bin/sh -> dash
 
nel mio sistema sh punta quindi a dash, magari ti manca solo il link

 
http://08-07-1983.com/fake-hwclock
 
 
prova ad eseguire fake-hwclock da root
 
cd /etc/cron.hourly/
./fake-hwclock

 ../fake-hwclock
 
Provato. Funziona e fa il suo lavoro (fake-hwclock scrive in un file l'ora
e data attuali. Serve perch� l'hardware non ha un real time clock e quindi
ad ogni reboot tornerebbe al 1970, in questo modo invece l'ora � sbagliata
fino alla correzione da parte di ntp, ma non di cos� tanto).
 
Nel frattempo ho verificato dove punta /bin/sh, come da te � linkato a
dash. Ora ho modificato /etc/crontab da "SHELL=/bin/sh" a
"SHELL=/bin/dash".
 
Vediamo se cambia qualcosa...


 --report /etc/cron.hourly" e contenuto "/bin/sh: 1: root: not found"
 
forse ho capito.
 
Su crontab prende root come comando e non come utente. Non so perch�
ma credo sia quello l'errore, infatti cerca il comando root che non trova.

 --report /etc/cron.hourly" e contenuto "/bin/sh: 1: root: not found"
 
Posta le crontab degli utenti che hanno il problema e la crontab di
sistema. Ricorda che la crontab di sistema ha un formato leggermente 
diverso; c'è un campo in più ed il sesto campo è l'utente che esegue
lo script.
 

 sistema.
 
La crontab da cui scaturisce l'errore � quella di sistema, la vedi qui:
http://08-07-1983.com/crontab
 
 
Il contenuto dell'unico script in cron.hourly � questo:
http://08-07-1983.com/fake-hwclock
 
 
 
 
Per confronto, qui un crontab utente, che funziona senza problemi:
http://08-07-1983.com/user_crontab
 
 
Questo � lo script che viene invocato (non ha molto senso, ma lo uso per
il debugging) e viene eseguito correttamente
http://08-07-1983.com/patch.sh
 


 
http://08-07-1983.com/crontab
 
 
togli root dalla prima riga di crontab e vedi che succede.
Il problema per� non l'ho capito da cosa nasce

 
http://08-07-1983.com/crontab
 
 
Che cacchio sono codesti link? Posta i crontab e fa la persona seria.

 Che cacchio sono codesti link? Posta i crontab e fa la persona seria.
 
Clicca sul link e ti si aprir� un file di testo nella finestra del tuo
browser. Si tratta di /etc/crontab che ho copiato l� per evitare
scassamenti di balle dovuti all'escaping e agli a-capo aleatori introdotti
da newsland. Pi� serio di cos�...


 Clicca sul link ....
 
A parte che mettere il file da scaricare su un server FTP o 
altro è una pratica buona e giusta *SE* il file è binario o e 
di grosse dimensioni, io avevo chiesti il crontab dell'utente 
che provoca l'errore. Chi è pi@rpi?
 
 
 
 
 
 

 che provoca l'errore. Chi è pi@rpi?
 
rpi � il nome della macchina, che � una Raspberry Pi, un sistema embedded
su cui gira una distribuzione apposta di Debian.
 
pi � l'utente standard. root non ha di default un login, viene detto
espressamente nella documentazione di usare pi con sudo. Viene anche
spiegato come rendere possibile il login come root, ma lo sconsigliano
(non so perch�).
 
L'errore viene generato dalla prima entry in /etc/crontab, quindi parte
dalla crontab di sistema, non di un utente specifico. Questa viene
eseguita come root, ma dato che non mi posso loggare come root, non saprei
dove andare a cercare la crontab di root.
 
Se servono altre informazioni, ho bisogno che mi dici anche dove cercarle,
perch� quello che sapevo ho dato ;-)


 dove andare a cercare la crontab di root.
 
UPDATE: "sudo su" funziona e mi d� una shell come root. Se digito "crontab
-l" mi ritorna quello che ho linkato qui
http://08-07-1983.com/user_crontab
 
e che incollo qui sotto se preferisci:
 
# m h  dom mon dow   command
0 22 * * fri cd /home/pi/scripts/ && /bin/bash ./patch.sh >/dev/null
 


 UPDATE: "sudo su" funziona e mi dï¿œ una shell come root
 
man sudo
sudo -s
 
-- 
Flavio Visentin
 
Scientists discovered what's wrong with the female brain: on the left
side, there's nothing right, and on the right side, there's nothing left

Roby Ross ha scritto:

Altro update interessante...
Senza crederci troppo ho fatto come dici (root non fa ancora parte
dell'istruzione, � l'utente che esegue l'istruzione).
 
Non � cambiato assolutamente nulla! Nell'email root c'era ancora.
A questo punto mi sono accorto che "crontab -l" genera per l'utente pi
questo output:
 
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
 
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 
# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts
--report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts
--report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts
--report /etc/cron.monthly )
 
E a questo punto non ci capisco veramente pi� nulla!
La prima riga dice /etc/crontab e system-wide crontab, ma il contenuto non
coincide con quello che ottengo digitande "less /etc/crontab", dove ho
appunto rimosso root!
 
Provo a commentare tutto e lasciare solo il vero /etc/crontab... vediamo
cosa succede...


 dove andare a cercare la crontab di root.
 
magari nella distribuzione esotica che stai usando il
crontab di sistema non accetta l'utente come parametro
e passa direttamente al comando.

 perché quello che sapevo ho dato ;-)
 
Leggi i log.   /var/log/cron/*
 
 
 

 appunto rimosso root!
 
Ottimo! C'� un bordello dietro che si presenta molto
intrigante.
Prova a fare uno script eseguibile in /bin chiamato
root che esegue i comandi nei suoi parametri.

 e passa direttamente al comando.
 
STRONZATA MEGAGALATTICA

 questo output:
 
pardon, devi mandare il segnale -HUP al daemon di cron per rileggere
il crontab..

 Leggi i log.   /var/log/cron/*
 
La directory non esiste. Come detto ho risolto, ma non sarebbe male per il
futuro averceli questi log. Sai dove si imposta il logging di cron?
 
Grazie e ciao


 Ecco perch� non funzionava.
 
e quello andava fatto saltando il campo user
CVD

 futuro averceli questi log. Sai dove si imposta il logging di cron?
 
/etc/default/cron
 
-L1


 il problema non c'è piú!
 
Ecco, hai risolto il problema da solo. Bravo!
 
 
 

 Perché? Non lo sapevi già? non era scritto nei manuali di cron?
 
ma sei il fratello di Brontolo? :D

 ma sei il fratello di Brontolo? :D
 
Certo. E lui è mio nipote. 
 
http://images2.wikia.nocookie.net/__cb20120522172116/house/images/1/14/House-end.jpg
 


in mezzo ai bits si intravede un barlume di umorismo.
 
In alto i nostri cielo rendono grazie al Signore!
 
:)