erreur nohup aucun tel fichier ou répertoire

J’essaie d’exécuter une chaîne de commandes nohup pour obtenir les statistiques du serveur. Cependant, je reçois une erreur de “No such file or directory” . Notez que les 3 appels nohup sont incorporés dans un script qui est exécuté via un travail cron . Et le premier nohup fonctionne mais les 2 autres renvoient une erreur. Ironiquement, lorsqu’il est exécuté sur un autre serveur, le script fonctionne correctement.

Une idée de ce qui ne va pas?

Le problème habituel avec les scripts qui s’exécutent à partir de la ligne de commande et non lors de l’exécution par cron est “environnement”. Il y a beaucoup de questions sur SO où cela est illustré, y compris:

  • Le script Perl fonctionne mais pas quand via cron
  • Pourquoi ma ligne de commande ne s’exécute-t-elle pas depuis cron?
  • Le script Bash ne s’exécute pas correctement dans cron
  • Comment puis-je définir les variables d’environnement que crontab utilisera?

Pour le débogage, ajoutez une commande / ligne au script cron-run qui fait:

 env > /tmp/cron.job 

Vérifiez si le PATH contient ce que vous attendez et, en particulier, s’il inclut le répertoire (répertoires) où chacun des trois programmes est installé. Et vérifiez que vous exécutez les programmes que vous attendez de la ligne de commande:

 which vmpstat mpstat iostat 

Il est raisonnable de penser que les deux commandes «manquantes» ne sont pas dans un répertoire sur PATH lorsque votre script est exécuté par cron . Et cron vous offre un environnement minimaliste; c’est complètement différent at cet égard.

Voir également:

  • Crontab et test d’une commande à exécuter
  • Comment append des scripts pré-hook et post-hook qui s’exécutent avant tous mes jobs cron?

Je pense que vous devriez donner le chemin relatif / absolu de votre programme

Par exemple:

nohup ./****.sh > /home/user/test.txt