Pour éviter d'avoir à taper le chemin absolu d'une commande, les shells ont introduit la $PATH
variable d'environnement, chaque répertoire est séparé par un :
et les recherches se font de gauche à droite. cron
efface souvent tout l'environnement, y compris cette $PATH
variable. Par conséquent, le script peut se comporter différemment dans votre cron par rapport au comportement dans le shell.
Utiliser des chemins absolus
Exécutez en which db2
tant db2inst1
qu'utilisateur pour obtenir le chemin complet du db2
programme. Si la sortie est /usr/bin/db2
, votre commande cron ressemblerait à:
/usr/bin/db2 connect to myDB2
Définissez la variable PATH
Exécutez en echo "$PATH"
tant db2inst1
qu'utilisateur pour obtenir la $PATH
variable et assurez-vous que cette variable est également disponible dans votre script cron. Par exemple, si la sortie était /usr/local/bin:/usr/bin:/bin
, vous mettriez la ligne suivante en haut de votre script shell:
export PATH="/usr/local/bin:/usr/bin:/bin"
Vous devez définir ce que sont db2 et myDB2 , sinon utilisez l'emplacement absolu de « fichier » ou « application » qui veulent s'exécuter.
Exemple:
la source