Bonjour c’est encore moi décidément ce serveur m’aura donné du fil à retorde.
Je souhaite mettre en place un script cron qui me récupère la base de donnée d’un poste me l’injecte dans ma base de données de mon application puis me lance un script de calcul de stock.
Ce script est un script PHP qui fonctionne impeccablement bien s’il est lancé manuellement.
Pour cela j’édite mon fichier cron à laide de crontab -e et j’y met le contenu suivant
avant le chemin vers mon script.
Je ne ferme pas la discussion car j’ai d’autre script bash à mettre mais il ne semble pas fonctionner que dois-je mettre ?
Yes ça fonction impeccable enfin dernière chose j’ai deux scripts en bash cette fois qui me permette avec rsync d’aller chercher les données de mon serveur 1 et de les sauvegarder sur le disque 1 du serveur 2 et le disque 2 du serveur 2.
Les deux script sont identiques il n’y a que le dossier qui change.
Le premier fonctionne impeccable mais le deuxième ne se lance pas.
Ton cron suivant est à 00:57 ; deux minutes après.
Et sans étudier les scripts, je pense qu’ils utilisent des ressources communes.
Et tu invoques des scripts bash avec /bin/sh -c
Je ne connais pas encore ce -x de #!/bin/bash -x
On va attendre les codeurs.
Là, je vais t’induire en erreur et il est tard.
Je te recommande de finir les lignes de tes entrées crontab par : > /dev/null
Comme pour le script précédent.
Une tâche cron ne doit produire aucune sortie standard ;
risque de dommages encourus autrement.
Ou de comportement imprévisible.
Dans mon test oui il met mois de 2 minutes pour finir car j’ai déjà lancé les commandes manuellement donc il n’y a rien à ramener.
Oups oui j’ai changé dans le crontab par /bin/bash
Pour le #!/bin/bash -x j’ai un autre script qui fait la même chose sur un autre serveur et il fonctionne impeccablement une question à quoi sert le -c après /bin/sh ?
−c Read commands from the command_string operand.
Set the value of special parameter 0
(see Section 2.5.2, Special Parameters)
from the value of the command_name operand and the positional
parameters ($1, $2, and so on) in sequence from the remaining
argument operands.
No commands shall be read from the standard input.