1. 程式人生 > >定時執行以及腳本監聽

定時執行以及腳本監聽

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

  

定時執行以及腳本監聽