Je veux simplement exécuter une commande (c'est en fait un script shell) à partir d'un répertoire donné en tant que tâche cron. Comment puis-je l'exécuter pour qu'il soit défini sur un répertoire donné sans utiliser cd
.
Je veux simplement exécuter une commande (c'est en fait un script shell) à partir d'un répertoire donné en tant que tâche cron. Comment puis-je l'exécuter pour qu'il soit défini sur un répertoire donné sans utiliser cd
.
Réponses:
Votre question a peu de sens. Utilisez cd
. Si vous demandez que la réponse ne soit pas utilisée cd
parce que vous l'avez essayée et que cela n'a pas fonctionné, il est probable que vous ne l'ayez pas entrée correctement dans la crontab.
Le moyen le plus simple serait d'écrire un petit script shell qui sera cd et exécutera votre tâche principale, puis cron le script.
&&
), mais vous pouvez également écrire un script séparé contenant toutes les commandes et simplement mettre le chemin d'accès au script dans cron, comme suggéré par Daenyth. Votre script pourrait faire quelque chose de similaire à la lecture du répertoire à partir d’un fichier de configuration si vous le souhaitez. L’important, c’est que quel que soit le nom de votre répertoire, ce n’est pas une excuse pour ne pas l’utiliser cd
.
Il suffit de spécifier le chemin d'accès au script. Pas besoin de cd
:
0 12 * * * /path/to/script args
Si votre script recherche des fichiers .
, vous devrez alors utiliser cd
:
0 12 * * * cd /some/dir && /path/to/script args
&&
, comme dans la réponse à laquelle @WillSheppard renvoie, serait préférable, ;
car elle n'exécute &&
la commande suivante que si la commande précédente a abouti.