crontab -e
35 14 * * * python3 /home/yanyouscrapy/tutorial/lucas_scrapy_auto_run.py >/dev/null 2>&1
前五個*代表分,時,幾號,幾月,星期幾
sudo service cron restart
service cron status
vi /etc/rsyslog.d/50-default.conf
開啟cron的log,把cron面前的*去掉,然後重啟log服務
sudo service rsyslog restart
目標:定時任務:每分鐘向螢幕輸出"hello world!"。
有兩種實現方式:
1)輸入crontab -e命令,根據提示直接在當前cron task文字最後面插入如下命令(記得回車):
* * * * * echo "hello world!"
sudo vim /var/spool/cron/crontabs/waterfronter #注:waterfronter為當前使用者名稱
同樣在檔案末行插入:
* * * * * echo "hello world!"
儲存退出,並通過crontab -l檢視定時任務建立成功。
2、然後等待,若干分鐘後發現螢幕並未輸出"hello world!"怎麼回事?!
1)剛開始懷疑是cron服務沒有啟動,遂執行:
sudo service cron status
發現cron服務是running的,排除;
2)繼而懷疑是任務檔案建立後未能被系統及時get到,因而執行:
sudo service cron restart
重啟cron後問題依舊,排除;
sudo vim /etc/rsyslog.d/50-default.conf
sudo service rsyslog restart
執行less -10 /var/log/cron.log再次檢視cron執行日誌,log出來了,提示如下資訊:
no mta installed, discarding output
原因是cron把螢幕輸出都傳送到email了,而當前環境並未安裝email server,於是系統報錯,解決方面就是不要直接向螢幕輸出內容,而是重定向到乙個檔案。
3、修改任務檔案
sudo vim /var/spool/cron/crontabs/waterfronter
將末行改為:
* * * * * echo "hello world!" >> /tmp/cron_log.txt
儲存退出,同時reload cron服務:
sudo service cron reload
若干分鐘後檢視/tmp/cron_log.txt,「hello world!」每隔一分鐘輸出一次,問題解決。
如果在日誌中能看到有這樣的記錄
jan 23 12:55:01 izbp12o440hd7llqz14ebpz cron[3990]: (root) mail (mailed 1 byte of output; but got status 0x00ff, #012)
這是乙個很常見的錯誤,很多新手都會碰到這個問題,這個錯誤原因是cron執行完你的命令後就會給你發一封郵件,但是我郵件都沒配置往哪發啊,所以就報錯了。難道真的要我把郵箱配置起來嘛,當然不要,也不知道怎麼配,更不想去配,你執行完就完事了唄,給我發郵件幹啥呢。可能老外比較喜歡用郵件,想每天登入郵箱都能看到滿滿的一箱信,哈哈,扯遠了。
回歸正題,我們只需要在每條cron命令空一格後加上這幾個字
>/dev/null 2>&1
比如我的一條命令
*/5 * * * * sh /var/***/***.sh >/dev/null 2>&1
明確告訴你,完事別給我發什麼郵件了,老子不需要。然後
service cron restart
把cron重啟一下,靜靜的等待奇蹟的出現。。。
如果還有問題,看日誌,一步步排查,還有乙個很值得注意的就是要確保你的指令碼命令盡量使用全路徑,有些環境變數沒配的話是執行不起來的。
使用python指令碼來實現:
新建個crawl.py檔案,寫入以下字元:
# -*- coding: utf-8 -*-
import scrapy
from scrapy import cmdline
import os
os.chdir("/home/yanyouscrapy/tutorial")
cmdline.execute("scrapy crawl quotes ".split())
# -*- coding: utf-8 -*-
import scrapy
from scrapy.crawler import crawlerprocess
from scrapy.utils.project import get_project_settings
from spiders.test_spider import *
process = crawlerprocess(get_project_settings())
process.crawl(testspider)
process.start()
cron風格定時器 crontab定時器工具
要使用crontab定時器工具,必須要啟動cron服務 service cron start crontab各引數說明 e 執行文字編輯器來編輯crontab,內定的文字編輯器是vi r 刪除目前的crontab l 列出目前的crontab 檢視專用 代表所有的取值範圍內的數字。特別要注意哦!代表...
定時器任務
步驟 在springboot 入口中,開啟定時器任務。新建任務類,將任務類交給spring 容器管理。啟動類加入註解 enablescheduling 開啟定時器任務 新建定時器任務包,新建任務類 在任務類中 寫上乙個任務 在任務的上面加上註解 scheduled fixdrate 毫秒 每隔 毫秒...
freertos 定時器 不啟動 定時器
工作方式0,13位定時器 計數器。下面以定時器0為例講解。上圖可以知道定時器工作方式0的邏輯結構,與工作方式1相差不遠,只是方式1是兩個8位計數器,而方式0是乙個8位,乙個低5位組成的13位計數器。程式設計控制兩個非常像。方式0的計數器最大值為2的13次方 8192,計數一次時間最大值為8192 1...