linux: cara menjalankan perintah di direktori yang diberikan


16

Saya hanya ingin menjalankan perintah (sebenarnya skrip shell) dari direktori yang diberikan sebagai tugas cron. Bagaimana saya bisa menjalankannya sehingga diatur ke direktori yang diberikan tanpa menggunakan cd.

Jawaban:


16

Pertanyaan Anda tidak masuk akal. Gunakan cd. Jika Anda meminta jawaban untuk tidak digunakan cdkarena Anda sudah mencobanya dan itu tidak berhasil, kemungkinan Anda tidak memasukkannya dengan benar di crontab.

Cara paling sederhana adalah dengan menulis skrip shell kecil yang akan melakukan cd dan menjalankan tugas utama Anda, kemudian cron skrip tersebut.


1
Bisakah crontab membiarkan saya memasukkan banyak perintah ke dalam satu pekerjaan? Jika tidak, saya harus men - harcode cd [path]. Dan path mungkin berubah, sehingga menyebabkan masalah penyebaran yang sangat mengganggu dan juga mendesentralisasi konfigurasi yang merupakan sesuatu yang saya hindari dengan cara apa pun.
Zombies

1
@ Zombies: ya, Anda dapat menempatkan beberapa perintah di dalam satu pekerjaan (mis. Memisahkannya dengan titik koma atau &&), tetapi Anda juga dapat menulis skrip terpisah yang berisi semua perintah dan cukup meletakkan path ke skrip di cron, seperti disarankan Daenyth. Script Anda dapat melakukan sesuatu seperti membaca direktori dari file konfigurasi jika Anda suka - intinya adalah, namun Anda ingin memasukkan nama direktori ke dalam skrip Anda, tidak ada alasan untuk tidak menggunakannya cd.
David Z

Saya melihat. Saya ingin menggunakan cd pada crontab secara langsung karena jika saya menulisnya dalam file, saya harus mengeditnya di setiap file yang membuat konfigurasi yang rumit / mudah rusak.
Zombies

3
Dan jika Anda meletakkan cd di file crontab, Anda harus mengeditnya di setiap file crontab. Saya tidak mengerti masalahnya. Mungkin Anda bisa menjelaskan apa yang Anda coba lakukan dengan lebih penuh.
garyjohn

Dan alasan lain untuk menjalankan skrip shell dari file crontab adalah untuk memastikan bahwa lingkungan diatur dengan benar. Lingkungan yang diberikan kepada pekerjaan cron biasanya bahkan nyaris tidak minimal, jadi Anda biasanya perlu mengatur ulang ke sesuatu yang lebih bermanfaat.
Jonathan Leffler

60

Cukup tentukan jalur ke skrip. Tidak perlu untuk cd:

0 12 * * * /path/to/script args

Jika naskah anda untuk mencari file di ., maka Anda akan harus menggunakan cd:

0 12 * * * cd /some/dir && /path/to/script args


4
&&, seperti pada tautan jawaban @WillSheppard, akan lebih baik daripada ;karena &&hanya menjalankan perintah berikutnya jika perintah sebelumnya berhasil.
Max Heiber

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.