ฉันพยายามเรียกใช้คำสั่งการจัดการ Django จาก cron ฉันกำลังใช้ virtualenv เพื่อให้โครงการของฉันแซนด์บ็อกซ์
ฉันได้เห็นตัวอย่างที่นี่และที่อื่น ๆ ที่แสดงคำสั่งการจัดการจากภายใน virtualenv ชอบ:
0 3 * * * source /home/user/project/env/bin/activate && /home/user/project/manage.py command arg
อย่างไรก็ตามแม้ว่า syslog จะแสดงรายการเมื่องานควรเริ่มทำงาน แต่งานนี้จะไม่ทำงานจริง ๆ (ไฟล์บันทึกสำหรับสคริปต์นั้นว่างเปล่า) ถ้าฉันเรียกใช้บรรทัดด้วยตนเองจากเปลือกมันทำงานตามที่คาดไว้
วิธีเดียวที่ฉันสามารถรับคำสั่งให้ทำงานผ่าน cron ในขณะนี้คือการแบ่งคำสั่งและวางไว้ในสคริปต์ bash wrapper:
#!/bin/sh
source /home/user/project/env/bin/activate
cd /home/user/project/
./manage.py command arg
แก้ไข:
ars เกิดขึ้นพร้อมชุดคำสั่งที่ใช้งานได้:
0 3 * * * cd /home/user/project && /home/user/project/env/bin/python /home/user/project/manage.py command arg
อย่างน้อยในกรณีของฉันการเรียกใช้สคริปต์เปิดใช้งานสำหรับ virtualenv ไม่ได้ทำอะไรเลย ใช้งานได้ดีกับการแสดง
env
และexport
พวกมันทั้งหมดในชุดคำสั่งbash script ที่คุณเรียกใช้จาก crontab