具体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