具体crontab内容参见
http://blog.csdn.net/zwhfyy/article/details/34065187
ubuntu 重启crontab
sudo service cron restart
不是ubuntu版本的重启命令
$ service crond restart
我有个需求是根据时间自动发布文章, 但django环境又是用了virtualenv
#!/usr/bin/env python
# encoding: utf-8
#--------------------setup django env start-----------------------------
import socket
import sys
import os
import django
PRODUCTION_HOST = [
'ip-172-31-20-231',
'ip-172-31-21-123',
]
DEV_HOST =[
'w31',
]
PATH = '/home/david/xxx/xxx/xxx'
#PATH = '/ring/xxx/xxx/xxx'
sys.path.insert(0, PATH)
if socket.gethostname() in PRODUCTION_HOST:
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "xxx.settings.production")
elif socket.gethostname() in DEV_HOST:
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "xxx.settings.dev")
else:
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "xxx.settings.local")
django.setup()
#--------------------setup django env end-----------------------------
import datetime
from article.models import Article
now = datetime.datetime.now()
qs = Article.objects.filter(is_home_featured=True).order_by('-date_modified')[:200]
for atricle in qs:
print atricle.datetime_publish, atricle.datetime_unpublish
if atricle.datetime_publish <= now <= atricle.datetime_unpublish:
atricle.is_approved = True
else:
atricle.is_approved = False
atricle.save()
用一个sh来进入virtualenv
#!/bin/bash # local cd /home/david/.virtualenvs/xxx source ./bin/activate python /home/david/xxx/xxx/xxx/scripts/schedule_publish_article.py deactivate # dev # production
可能还要把这两个文件权限改成可执行
chmod a+x xxxx.py
crontab -e
然后添一句
*/50 * * * * bash /home/david/xxx/xxx/xxx/scripts/schedule_publish_article.sh
链接一个参考
http://www.centoscn.com/CentOS/help/2014/1030/4025.html