1 votes

Crontab script ne démarre pas

J'ai un simple script qui nettoie les journaux avec le code suivant :

#!/bin/bash
LOG_ROOT=...
cd $LOG_ROOT
find ./* -mtime +$DAYS -delete

Et c'est ce qui se trouve dans la crontab :

@midnight /opt/sas/system/cleanlogs.sh

Et ça marche très bien. Mais il y a un autre script, qui nettoie les sandboxes, qui a le même code que cleanlogs.sh sauf qu'il est exécuté dans un autre répertoire. Il fonctionne à partir de la ligne de commande, mais ne démarre pas à partir de la crontab pour une raison quelconque.

Je suis confus car les scripts sont presque identiques et l'un ne fonctionne pas. Quel peut être le problème ?

2voto

La réponse est que scripts n'étaient pas identiques comme je le pensais. Tout d'abord, j'ai ajouté la journalisation de cron avec ceci

@midnight /opt/sas/system/cleansandbox.sh > .../cron.log 2>&1 .

Il y avait #!/bin/bash - aucun fichier ou répertoire de ce type erreur. Donc le script contenait un retour chariot supplémentaire à la fin de la première ligne, que j'ai détecté en utilisant ceci $ head -1 cleansandbox.sh | od -c et ensuite corrigé le script avec ceci sed -i '1s/^.*#//;s/\r$//' cleansandbox.sh . Maintenant, il fonctionne à partir de cron. Merci à tous pour votre aide !

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