定時執行以及腳本監聽
阿新 • • 發佈:2018-09-19
lin earch 關於 scrapy post sea clas 使用 字符
Crond
關於編寫完成的爬蟲腳本,我們後續的操作無非是定時執行,以及掛掉的監聽。定時執行的話可以用到crontab.
$ yum install crontab # 啟動 $ systemctl start crond.service
[root@localhost ~]# cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=""HOME=/ # need to run 56 * * * * root nohup python3 ~/notebook/Xj.py & 1 8 * * * root nohup scrapy crawlall &
crontab文件的含義:
用戶所建立的crontab文件中,每一行都代表一項任務,每行的每個字段代表一項設置,它的格式共分為六個字段,前五段是時間設定段,第六段是要執行的命令段,格式如下:
minute hour day month week command
其中:
minute: 表示分鐘,可以是從0到59之間的任何整數。
hour:表示小時,可以是從0到23之間的任何整數。
day:表示日期,可以是從1到31之間的任何整數。
month:表示月份,可以是從1到12之間的任何整數。
week:表示星期幾,可以是從0到7之間的任何整數,這裏的0或7代表星期日。
command:要執行的命令,可以是系統命令,也可以是自己編寫的腳本文件。
在以上各個字段中,還可以使用以下特殊字符:
星號(*):代表所有可能的值,例如month字段如果是星號,則表示在滿足其它字段的制約條件後每月都執行該命令操作。
逗號(,):可以用逗號隔開的值指定一個列表範圍,例如,“1,2,5,7,8,9”
中杠(-):可以用整數之間的中杠表示一個整數範圍,例如“2-6”表示“2,3,4,5,6”
正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute字段,表示每十分鐘執行一次。
監聽
用到的是os模塊,主要是os.popen("command")的用法,將命令的輸出作為值返回。
import os import re message = os.popen("ps aux | grep python3").readlines() message = os.popen("ps aux |grep python3").read() condition = re.search(r"notebook/Xj.py",message) if condition: pass else: print("掉線啦") post
定時執行以及腳本監聽