1 votes

Pourquoi cron ajoute un point d'interrogation après le nom du fichier journal

J'ai créé une tâche cron en utilisant crontab mais je reçois un point d'interrogation à la fin du nom du fichier journal.

*/4 * * * * /usr/bin/php /chemin_vers_cron/queue.php > /chemin_vers_fichier_log/queue.txt

Y a-t-il un moyen de s'en débarrasser? Le fichier créé a un point d'interrogation à la fin, par exemple queue.txt?

J'ai essayé de changer l'éditeur cron mais cela ne m'a pas aidé

Je peux voir avec crontab -l | cat -tve qu'après chaque tâche, il y a ^M$ après le nom du fichier journal.

1voto

Chriki Points 1343

Comme l'a suggéré Stevieb dans le commentaire ci-dessus, il semble que vous ayez un retour chariot à la fin de votre ligne de crontab.

Voici une recette pour s'en débarrasser en utilisant l'éditeur vi. La commande suivante ouvrira le crontab pour être modifié dans vi:

VISUAL=$(which vi) EDITOR=$(which vi) crontab -e

Entrez maintenant :%s/\r$// et appuyez sur Entrée. Cela devrait supprimer tous les caractères de retour chariot aux extrémités des lignes. Ensuite, entrez :wq, suivi à nouveau d'Entrée. Cela devrait enregistrer le crontab et quitter l'éditeur.

0voto

Fury Points 111

Cela a fonctionné pour moi.

Le ^M que vous voyez est un retour chariot supplémentaire provenant du format Microsoft Windows. Vous pouvez vous en débarrasser en convertissant les caractères de retour chariot du format DOS au format Unix en utilisant l'utilitaire dos2unix.

Voici un exemple qui convertit tous les crontabs de l'utilisateur :

sudo dos2unix /var/spool/cron/crontabs/*

Référence

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X