2010-03-25 6 views
1

J'ai un script Python qui exécute quelques commandes ls. Ce script s'exécute sous cron toute la journée. J'utilise awk pour écrire la colonne dans laquelle se trouve le nom de fichier quand ls -l est exécuté.Weird Cron ls Behavior

Quand je lance le script via la ligne de commande la sortie se présente comme suit

-rw-rw---- 1 mysql adm  141 2010-03-25 08:56 mysql-bin.000485 
-rw-rw---- 1 mysql adm  141 2010-03-25 09:01 mysql-bin.000486 
-rw-rw---- 1 mysql adm  5073 2010-03-25 09:31 mysql-bin.000487 

mais quand je lance le Scrupt sous Cron en tant que root, la sortie se présente comme suit

-rw-rw---- 1 mysql adm  141 Mar 25 10:07 mysql-bin.000488 
-rw-rw---- 1 mysql adm  141 Mar 25 10:22 mysql-bin.000489 
-rw-rw---- 1 mysql adm  98 Mar 25 10:22 mysql-bin.000490 

Cela fait awk retourner la mauvaise colonne. Y at-il de toute façon obtenir la date pour formater la même chose sous cron?

Répondre

3

Si vous êtes sur ls GNU, vous pouvez passer --time-style=long-iso. Plus de formats sont here.

+0

Cela a fonctionné comme un charme! Merci. – Kyle

3

Le problème est lié à différents paramètres régionaux entre votre compte et votre compte root. Vous pouvez les modifier temporairement par:

$ LC_ALL="locale name" your-script