Linux 计划任务
crontab 执行Python脚本(以Postgresql为例,自动下架过期商品):
- Python脚本,自动下架商品:
#!/usr/bin/env python
# -*-coding: utf-8 -*-
'''自动下架获取'''
import psycopg2
config = {
'host': '127.0.0.1',
'port': 5432,
'user': 'xxx',
'password': 'xxx',
'database': 'xxx',
}
conn = psycopg2.connect(host=config['host'],
port=config['port'],
user=config['user'],
password=config['password'],
database=config['database'])
cur = conn.cursor()
# 自动下架商品
sql = "update goods set state=-1 where (etime + '10 day')::date < now()::date;"
cur.execute(sql)
print(cur.rowcount)
# 自动截止车辆需求
sql2 = "update truck_demand set state=1 where (end_time)::date >= now()::date;"
cur.execute(sql2)
print(cur.rowcount)
conn.commit()
cur.close()
conn.close()
try:
f = open('/var/www/logs/aa.txt', 'w+')
# with open('/var/www/logs/aa.txt', 'w+') as f:
f.write('ahahhahahahah')
f.close()
except:
f.close()
- crontab计划任务:
0 0 * * * /var/www/crontab_bash/auto_offline.py
注1: 上面表示每天0点定时执行该脚本
注2: 执行Python脚本的时候,如果脚本内添加
#!/usr/bin/env python
之后,
表示该脚本是可执行文件,直接用上面的代码即可.否则需要改为下面代码(我用的是虚拟环境
的Python)
0 0 * * * /usr/bin/env/python /var/www/crontab_bash/auto_offline.py
- 注3: 基本格式
* * * * * command
分 时 日 月 周 命令
- crontab其他命令:
- 启动 加载 重启 停止
有些命令用的是crond
sudo service cron start 启动
sudo service cron reload 加载
sudo service cron stop 停止
sudo service cron restart 重启
- 查看运行状态:
sudo service cron status
- 插入命令:
crontab -e