[Shell] Problème avec Crontab et scripts
Résolu/Fermé
A voir également:
- [Shell] Problème avec Crontab et scripts
- Classic shell windows 11 - Télécharger - Personnalisation
- Microsoft activation scripts - Accueil - Windows
- Efi shell version 2.50 - Forum Windows 10
- Classic shell c'est quoi ✓ - Forum Windows 10
- Shell do while ✓ - Forum Shell
2 réponses
Utilisateur anonyme
30 mai 2011 à 13:12
30 mai 2011 à 13:12
salut
plus simple, utilise
plus simple, utilise
if cmp -s config_new.xml config.xml; then mv config_new.xml config.xml; else rm config.xml; fien ayant d'abord vérifier que les deux fichiers existent, bien sûr.
elpens
Messages postés
815
Date d'inscription
mercredi 10 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2014
136
30 mai 2011 à 12:01
30 mai 2011 à 12:01
Hello,
En effet, je ne pense pas que ton problème vient de "crontab", mais plutot de ta commande grep.
Personnelement j'utiliserai une commande md5 pour comparer les 2 fichiers, mais cela devait aussi aller avec grep...
Mets des "echos" dans ton scripts et afin de voir d'ou vient exactement le problème.
En effet, je ne pense pas que ton problème vient de "crontab", mais plutot de ta commande grep.
Personnelement j'utiliserai une commande md5 pour comparer les 2 fichiers, mais cela devait aussi aller avec grep...
Mets des "echos" dans ton scripts et afin de voir d'ou vient exactement le problème.
Attends, peut être que si tu vois mon script, tu comprendras mieux mon problème, vu que des echos sont déjà mis en place :
change=""
'wget -q http://mon.url/getconfig.php'
'mv getconfig.php config_new.xml'
change='diff -q config.xml config_new.xml | grep -c differ'
if [ $change = 0 ]
then
echo "Launched the 'date' => No changes" >> /var/log/listener.log"
'rm config_new.xml'
else
echo "Launched the 'date' => Changes => Launch configurator.sh" >> /var/log/listener.log"
'rm config.xml'
'mv config_new.xml config.xml'
fi
A mon avis, le script n'est pas très complexe et parle de lui même. Il était lancé par Crontab, mais j'ai fait un autre script, lancé par Crontab qui lance celui ci
change=""
'wget -q http://mon.url/getconfig.php'
'mv getconfig.php config_new.xml'
change='diff -q config.xml config_new.xml | grep -c differ'
if [ $change = 0 ]
then
echo "Launched the 'date' => No changes" >> /var/log/listener.log"
'rm config_new.xml'
else
echo "Launched the 'date' => Changes => Launch configurator.sh" >> /var/log/listener.log"
'rm config.xml'
'mv config_new.xml config.xml'
fi
A mon avis, le script n'est pas très complexe et parle de lui même. Il était lancé par Crontab, mais j'ai fait un autre script, lancé par Crontab qui lance celui ci
30 mai 2011 à 13:21
Alors le truc, c'est qu'avec la commande cmp -s, je n'ai aucune sortie pour me dire si c'est différent ou pas. Il ne faudrait donc pas utiliser ce paramètre, ou alors il agit comme une valeur booléene dans un "if"? Si c'est le cas, ca me facilite grandement la tache effectivement :)
30 mai 2011 à 13:32
30 mai 2011 à 14:02
Je suis obligé de "grep" le mot "differ" dans le résultat du cmp sans le paramètre -s .. C'est bizarre.
Est ce que j'aurais fait quelque chose de faux? Sinon je continue comme je faisais, après tout c'est pas la commande qui ne jouait pas, c'est lorsque le script est lancé par Crontab que ca ne joue plus ..
Merci pour ton aide !
30 mai 2011 à 14:09
Il faut examiner le code retour ($?) et comparer sa valeur, 0 = true, 1 = false.
30 mai 2011 à 14:13
En tout cas merci à tous, je vais éditer tout ca et voir si Crontab fait moins ch*** maintenant :P