2012-01-17 5 views
124

Mi piacerebbe impostare un lavoro da eseguire quotidianamente nella radice crontab. Ma mi piacerebbe eseguirlo da una particolare directory in modo che possa trovare tutti i file di cui ha bisogno, dal momento che l'applicazione ha una serie di percorsi relativi.Crontab - Esegui nella directory

In ogni caso, posso dire a crontab di eseguire da una directory particolare?

risposta

219

Tutti i lavori vengono eseguiti da una shell, quindi avviare lo snippet di shell con un comando per cambiare la directory.

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

Piuttosto che aggiungere una gran parte duplicare risposta, vorrei solo aggiungere che è possibile scegliere quale shell (se avete bisogno di bash, piuttosto che sh, per esempio) impostando 'SHELL' nel vostro crontab. –

+0

Quindi questo comando sarebbe quello di eseguire l'app (memorizzata nel cestino) in un'altra directory, non è vero? Ma se hai già installato l'app nella giusta directory, il comando che ho inserito nella mia risposta sarebbe ok, giusto? Scusa, volevo solo capire la domanda. –

+5

+1. ogni altra soluzione relativa alla domanda è di riscrivere lo script con percorsi assoluti. questo è esattamente ciò di cui avevo bisogno –