linux定时任务
添加定时任务
crontab -e
查看cronteb任务
crontab -l
查看crontab日志
cat /var/log/cron
crontab 用户操作
/sbin/service crond start//启动服务 /sbin/service crond stop //关闭服务 /sbin/service crond restart //重启服务 /sbin/service crond reload//重新载入配置
设置run.sh文件
#! /bin/bash # crontab -e: 每隔6小时执行一次 0 */6 * * * sh /PythonSpiderScrapy/scrapy_venv/NewSpider/news_crontab.sh # 指定scrapy目录 export PATH=$PATH:/PythonSpiderScrapy/scrapy_venv/bin # 指定程序所在目录(绝对路径) cd /PythonSpiderScrapy/scrapy_venv/SHANGSHIYAOPINGMULU # today=$(date +"%Y-%m-%d") # nohup scrapy crawlall nohup scrapy crawl mulu
设置定时
0 */12 * * * /bin/sh /PythonSpiderScrapy/scrapy_venv/SHANGSHIYAOPINGMULU/run.sh # 每隔12小时跑一次
分钟,小时,日,月,周 */1 * * * * rm -rf /home/down/*想要在一个时间周期内执行命令可以这样 第1列表示分钟1~59 每分钟用*或者 */1表示 第2列表示小时1~23(0表示0点) 第3列表示日期1~31 第4列表示月份1~12 第5列标识号星期0~6(0表示星期天) 第6列要运行的命令
crontab范例 每五分钟执行 */5 * * * * 每小时执行 0 * * * * 每天执行 0 0 * * * 每周执行 0 0 * * 0 每月执行 0 0 1 * * 每年执行 0 0 1 1 *
0 0 * * 6 cd /home/data/Projects/yyzx && /home/data/Projects/Spider/bin/scrapy crawlall
& 表示任务在后台执行,如要在后台运行redis-server,则有 redis-server &
&& 表示前一条命令执行成功时,才执行后一条命令 ,如 echo '1‘ && echo '2'
| 表示管道,上一条命令的输出,作为下一条命令参数,如 echo 'yes' | wc -l
|| 表示上一条命令执行失败后,才执行下一条命令,如 cat nofile || echo "fail"
* 8-20/2 * * * rm -rf /home/down/*这个表示在早上8点到晚上8点之间,每两个小时执行一次后面的命令。
* * * * * sleep 20; rm -rf /home/down/* 表示20秒执行一次
30 6 * * 0 ls 指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,
0 */12 * * * /bin/sh /PythonSpiderScrapy/scrapy_venv/SHANGSHIYAOPINGMULU/run.sh
* 代表取值范围内的数字
/ 代表"每"
- 代表从某个数字到某个数字
, 代表离散的取值(取值的列表)
rm -rf /var/run/crond.pid 端口占用
which python3 查看命令安装路径
*/1 * * * * /root/kangce/caifu/kangce/bin/python3 /root/kangce/01-python/01-druginfo/druginfo.py
*/30 * * * * /bin/sh /PythonSpiderScrapy/scrapy_venv/NewSpider/news_crontab.sh