Bagaimana cara mengatur tugas cron untuk menjalankan skrip shell?

44

Saya telah menetapkan pekerjaan cron:

20 * * * * /usr/bin/sh /home/lucky/myfile.sh

Masalah utama adalah bahwa pada waktu yang dijadwalkan, ada kesalahan: "mail telah dikirim ke / var / spool / mail / lucky".

Isi myfile.sh adalah:

mkdir jh
cd jh 
Abhishek Tripathi
sumber
Ini dapat membantu Anda: help.ubuntu.com/community/CronHowto
PeppeDAlterio
2
jika myfile.sh ditetapkan sebagai executable?
rogerdpack

Jawaban:

61

Ini tidak masalah untuk skrip yang ditetapkan sebagai tugas cron:

mkdir jh
cd jh 

Anda harus memberikan path lengkap tempat jhdirektori harus dibuat. Selain itu, di jalur ini Anda harus memiliki izin untuk membuat file / direktori baru.

Misalnya, skrip Anda akan terlihat seperti:

#!/bin/sh

mkdir /home/lucky/jh
cd /home/lucky/jh

Juga /usr/bin/shbukan jalan yang benar untuk sh. Jalan yang benar adalah /bin/sh. Anda dapat memeriksa ini dengan whereis shperintah. Meski begitu, pekerjaan cron Anda akan terlihat seperti:

20 * * * * /home/lucky/myfile.sh

Jangan lupa untuk membuat skrip dapat dieksekusi:

chmod +x /home/lucky/myfile.sh
Radu Rădeanu
sumber
Awsome, menyelamatkan hidupku :) Milikku bekerja dengan baik seperti ini. 0 7 * * * / bin / sh /root/Scripts/command.sh> / dev / null 2> & 1
Louwki
5

Jalur tempat ini tampaknya membuat folder adalah /. Ini karena crontabmemerlukan path lengkap ke folder dan file di semua file yang dieksekusi.

Jadi jalan di myfile.sh seharusnya

mkdir <absolutePath>/jh

cd <absolutePath>/jh

20 * * * * /usr/bin/sh /home/lucky/myfile.shBaris ini benar meskipun Anda harus memeriksa path untuk melihat apakah sh ada di / usr / bin / sh atau tidak (gunakan which shuntuk melihat path di mana sh ada; milikku adalah / bin / sh)

Jika Anda terburu-buru untuk mulai menulis crontab, tautan ini memiliki contoh yang cukup bagus

http://www.thegeekstuff.com/2009/06/15-praktis-crontab-examples/

penguinRaider
sumber