[英]How can I run a django management command by cron job
我正在使用一個名為django-mailbox的django應用程序。 這樣做的目的是通過pop3和其他協議導入電子郵件消息並將其存儲在數據庫中。 我想通過一個chron定期做這件事。 在http://django-mailbox.readthedocs.org/en/latest/topics/polling.html文檔中,它指出:
使用cron作業
您可以通過運行名為getmail的管理命令輕松地使用傳入郵件(可選地使用您要獲取郵件的郵箱名稱的參數):
python manage.py getmail
現在我可以在命令行本地運行它並且它可以正常工作,但是如果將它部署到只能通過URL訪問的外部服務器,那么該命令將如何給出?
如果您使用虛擬環境,請使用virtualenv中的python二進制文件
* * * * * /path/to/virtualenv/bin/python /path/to/project/manage.py management_command
在服務器上:
$ sudo crontab -l
no crontab for root
$ sudo crontab -e
no crontab for root - using an empty one
Select an editor. To change later, run 'select-editor'.
1. /bin/ed
2. /bin/nano <---- easiest
3. /usr/bin/vim.basic
4. /usr/bin/vim.tiny
Choose 1-4 [2]:
選擇你喜歡的編輯器
然后查看http://en.wikipedia.org/wiki/Cron ,了解如何安排命令運行的時間,將其指向計算機上的某個.sh文件,確保提供完整路徑,因為這將在root中運行用戶上下文。
cron將運行的腳本可能類似於:
#!/bin/bash
cd /absolute/path/to/django/project
/usr/bin/python ./manage.py getmail
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.