Cron lancia lo script come l'utente a cui appartiene il crontab in cui è impostato: nel tuo caso è root?
Il tuo root/sistema ha come locale en_EN.UTF-8 o simile?
C'è anche da dire che l'ambiente in cui cron invoca gli script è piuttosto scarno, quindi può essere che non imposti il locale (non ho mai avuto fastidi di questo tipo e non posso provare in questo istante, per questo il dubitativo...).
Esempio in bash, al contrario:
Codice:
gimli@kwankey ~$ locale
LANG=it_IT.UTF-8
LC_CTYPE="it_IT.UTF-8"
LC_NUMERIC="it_IT.UTF-8"
LC_TIME="it_IT.UTF-8"
LC_COLLATE=C
LC_MONETARY="it_IT.UTF-8"
LC_MESSAGES="it_IT.UTF-8"
LC_PAPER="it_IT.UTF-8"
LC_NAME="it_IT.UTF-8"
LC_ADDRESS="it_IT.UTF-8"
LC_TELEPHONE="it_IT.UTF-8"
LC_MEASUREMENT="it_IT.UTF-8"
LC_IDENTIFICATION="it_IT.UTF-8"
LC_ALL=
gimli@kwankey ~$ date
sab 15 mag 2010, 18.10.01, CEST
gimli@kwankey ~$ LC_TIME="en_EN.UTF-8" date
Sat May 15 18.10:09 CEST 2010
gimli@kwankey ~$ date
sab 15 mag 2010, 18.11.01, CEST
Per avere la data in italiano puoi:
- specificare la variabile del locale che ti serve prima del comando, come nell'esempio
- specificare la variabile all'inizio di crontab, per farla valere per tutti gli script invocati
- controllare che il locale di sistema sia impostato in italiano (questo l'ho elencato per ultimo perché non sono certo che influenzi cron, come ho scritto sopra)