在虛擬機中安裝Linux中的CentOS7系統
https://baijiahao.baidu.com/s?id=1597320700700593557&wfr=spider&for=pc
因為安裝的centos7的python版本為2.7我們要將他的版本升為3.5
安裝依賴
shell> yum -y install zlib-devel \ bzip2-devel openssl-devel ncurses-devel \ sqlite-devel readline-devel tk-devel \ gdbm-devel db4-devel libpcap-devel xz-devel
下載編譯安裝
shell> cd /usr/local/src/ shell> wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz shell> tar xf Python-3.6.5.tgz shell> cd Python-3.6.5 shell> ./configure --prefix=/usr/local/python3.6.5 shell> make -j 4 && make install shell> ln -s /usr/local/python3.6.5 /usr/local/python3 shell> echo -e '# Python PATH\nexport PATH=/usr/local/python3/bin:$PATH' >>/etc/profile shell> source /etc/profile shell> python3 -m pip install --upgrade pip
寫一個在linux系統中持續運行的后台程序
import time def sleeptime(hour,min,second): return hour * 3600 + min * 60 + second a =1 sec=sleeptime(0, 0, 5) while a == 1: time.sleep(sec) print('kaishizhixing')
每隔5秒輸出一次 也可以直接寫一個跟簡單的
a = 1 while a =1: print('kaishizhixing")
寫一個監控腳本 檢測程序是否一致在執行
我們可以在shell命令中查詢程序的狀態
ps -ef|grep jiaoben.py
15589和13784是該進程的主id和副id
編寫一個監控進程,監控此腳本是否一直運行。
import os
import re
import datetime
import paramiko
import smtplib
from email.mime.text import MIMEText
from email.header import Header
process ="/home/languid/jiaoben.lock"
os.system("ps -ef|grep jiaoben.py|grep -v grep >%s" % process)
if not(os.path.getsize(process)):
os.system("nohup /home/languid/jiaoben.py %")
baocuoemali()
else:
print("腳本正常!")
再增加一個當腳本發生錯誤時的郵件通知。
#!/usr/bin/python3 import smtplib from email.mime.text import MIMEText from email.header import Header sender = 'from@baocuo.com' receivers = ['626549364@qq.com'] message = MIMEText('腳本錯誤...', 'plain', 'utf-8') message['From'] = Header("languid", 'utf-8') message['To'] = Header("測試", 'utf-8') subject = 'Python SMTP 報錯' message['Subject'] = Header(subject, 'utf-8') try: smtpObj = smtplib.SMTP('localhost') smtpObj.sendmail(sender, receivers, message.as_string()) print ("郵件發送成功") except smtplib.SMTPException: print ("Error: 無法發送郵件")