Saya baru saja menyiapkan tab/pekerjaan cron di server pengembangan Cent OS saya.

Di dalam crontab saya, saya memiliki yang berikut ini. (Abaikan pengaturan waktu, ini ditambahkan sekitar 15:32 waktu server UTC hanya untuk menjalankan jadwal berikutnya).

34 15 * * * cd welcomeclient-0.0.5 && python3.6 main.py

Di baris perintah cd welcomeclient-0.0.5 && python3.6 main.py berfungsi dengan baik. welcomeclient-0.0.5 di bawah root di droplet, dan python3.6 di /usr/bin.

Ada saran?

2
GCien 17 Agustus 2017, 19:51

2 jawaban

Jawaban Terbaik

Coba gunakan jalur absolut dalam perintah crontab Anda:

34 15 * * * cd /foo/bar/welcomeclient-0.0.5 && /usr/bin/python3.6 main.py

Atau, dengan asumsi main.py juga tidak menggunakan jalur relatif di dalamnya:

34 15 * * */usr/bin/python3.6 /foo/bar/welcomeclient-0.0.5/main.py
2
omu_negru 17 Agustus 2017, 16:57

Sepertinya Anda mencoba mengubah direktori di crontab, seperti yang dikatakan omu_negru Anda harus menggunakan path lengkap sebagai gantinya. Itu karena crontab meskipun dijalankan dengan nama Anda tidak akan mewarisi variabel lingkungan Anda seperti $PATH.

Coba ini. Pertama, buka direktori tempat skrip Anda berada... dan ubah main.py Anda menjadi file yang dapat dieksekusi sehingga Anda tidak perlu memanggil python main.py lagi. Cara paling sederhana untuk melakukannya adalah ...

$ chmod u+x main.py

Sekarang jika Anda melakukan ls -l Anda akan melihat bahwa Anda memiliki "x" di bagian izin pengguna yang memungkinkan Anda untuk menjalankannya secara langsung.

-rwxr--r-- 1 user user 0 Aug 17 17:55 main.py

Sekarang Anda siap untuk menyederhanakan sintaks crontab menjadi seperti ini...

34 15 * * * /foo/bar/welcomeclient-0.0.5/main.py 

Saya juga suka menangkap output dari skrip ke file log sehingga lebih mudah untuk memecahkan masalah ketika hal-hal tidak berjalan seperti yang direncanakan, sebagai berikut:

34 15 * * * /foo/bar/welcomeclient-0.0.5/main.py & >> /foo/bar/main.log 

Log harus ditambahkan ke rotasi log, jika tidak maka akan terus terisi dan akhirnya membuat sistem Anda kehabisan ruang, tapi itu topik lain yang sudah dibahas di situs ini.

1
darekm101 17 Agustus 2017, 18:08