Crontab - запуск у каталозі


170

Я хотів би встановити роботу, яку потрібно щодня запускати в кореневій crontab. Але я хотів би, щоб він виконав його з певного каталогу, щоб він міг знайти всі потрібні йому файли, оскільки програма має купу відносних шляхів.

У будь-якому випадку, чи можу я сказати crontab запускатися з певного каталогу?

Відповіді:


318

Усі завдання виконуються оболонкою, тому запустіть цей фрагмент оболонки командою, щоб змінити каталог.

cd /path/to/directory && ./bin/myapp

Щодо використання &&замість ;: зазвичай це не має значення, але якщо cdкоманда не працює (наприклад, тому, що каталог не існує), &&додаток не виконується, тоді як з ;ним виконується (але не в призначеному каталозі ).


Замість того, щоб додати в основному повторюваний відповідь, дозвольте мені лише додати, що ви можете вибрати, яку оболонку (якщо вам потрібен bash, а не sh, наприклад), встановивши SHELLу своєму crontab.
Едд Сталь

12
+1. рішення кожного іншого пов'язаного питання - переписати сценарій з абсолютними шляхами. це саме те, що мені було потрібно
Conrad.Dean

2
З цікавості ви могли б використовувати ;подвійну двокрапку замість подвійних амперсандів &&чи це не спрацює? І чому?
Джошуа Пінтер

32
@JoshPinter Зазвичай це не має значення. Але якщо cdкоманда виходить з ладу (наприклад, тому що каталог не існує), з &&, програма не виконується. З ;, він виконується (але не в призначеному каталозі).
Жил "ТАК - перестань бути злим"

1
Я зроблю це на всіх роботах із моїх додатків, ви врятували мене від зміни моїх вихідних файлів, дуже дякую
Бухгалтер,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.