Um zu vermeiden, dass der absolute Pfad zu einem Befehl eingegeben werden muss, haben Shells die $PATH
Umgebungsvariable eingeführt . Jedes Verzeichnis ist durch ein getrennt, :
und die Suche erfolgt von links nach rechts. cron
Löscht häufig die gesamte Umgebung, einschließlich dieser $PATH
Variablen. Daher verhält sich das Skript in Ihrem Cron möglicherweise anders als in der Shell.
Verwenden Sie absolute Pfade
Führen Sie which db2
als db2inst1
Benutzer aus, um den vollständigen Pfad für das db2
Programm abzurufen. Wenn die Ausgabe ist /usr/bin/db2
, würde Ihr Cron-Befehl wie folgt aussehen:
/usr/bin/db2 connect to myDB2
Stellen Sie die PATH-Variable ein
Führen Sie echo "$PATH"
als db2inst1
Benutzer aus, um die $PATH
Variable abzurufen, und stellen Sie sicher, dass diese Variable auch in Ihrem Cron-Skript verfügbar ist. Wenn die Ausgabe beispielsweise /usr/local/bin:/usr/bin:/bin
so wäre, würden Sie die nächste Zeile oben in Ihr Shell-Skript einfügen:
export PATH="/usr/local/bin:/usr/bin:/bin"
Sie müssen definieren, was db2 und myDB2 sind, andernfalls müssen Sie den absoluten Speicherort von ' file ' oder ' application ' verwenden, die ausgeführt werden sollen.
Beispiel:
quelle