裡面有幾個常用的功能,以後值得借鑑。
如獲取指令碼目錄,ip,獲取shell返回值,傳送郵件等..
上午寫完,中午測試,下午上線~~
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import
smtplib
from email.mime.text import
mimetext
import
socket
import
fcntl
import
struct
import
sysimportos#
######################################
#實現celery**現擁擠佇列時,及時發郵件通知 #
#######################################
#從系統命令中獲取返回值
defrun_cmd(cmd):
try:
import
subprocess
except
importerror:
_, result_f, error_f =os.popen3(cmd)
else
: process = subprocess.popen(cmd, shell =true,
stdout = subprocess.pipe, stderr =subprocess.pipe)
result_f, error_f =process.stdout, process.stderr
errors =error_f.read()
iferrors:
pass
result_str =result_f.read().strip()
ifresult_f:
result_f.close()
iferror_f:
error_f.close()
return
result_str
#格式化命令,獲取指令碼絕對指令碼,crontab也可執行
defformat_cmd(cmd):
filename =sys.ar**[0]
dirname =os.path.dirname(filename)
abspath =os.path.abspath(dirname)
return
"python %s/manage_prd.py celery inspect %s -d celeryd@deploy
" %(abspath, cmd)
#獲取指定網絡卡的ip
defget_ip(ifname):
s =socket.socket(socket.af_inet, socket.sock_dgram)
return socket.inet_ntoa(fcntl.ioctl(s.fileno(), 0x8915, struct.pack('
256s
', ifname[:15]))[20:24])
#傳送郵件
celery多個佇列優先順序實現
celery 是乙個簡單 靈活且可靠的,處理大量訊息的分布式系統,並且提供維護這樣乙個系統的必需工具。它是乙個專注於實時處理的任務佇列,同時也支援任務排程。優先順序佇列問題 celery 官方給出的是不支援優先順序佇列 建議看看這個論壇 或者 celery中broker 常用的是rabbitmq,r...
數字在排序陣列中出現的次數java實現
統計乙個數字在排序陣列中出現的次數。陣列是排序的,所以重複出現的數字是相鄰排列的。用二分查詢演算法,找到第一次出現的位置,和 最後一次出現的位置。判斷第一次出現的位置條件為 當前數字的前乙個是否與之相等,若是則繼續查詢,否則該位置就是第一次出現的位置。判斷最後一次出現的位置條件為 當前數字的後乙個是...
實現刪除字串中出現次數最少的字元
題目 華為 描述 實現刪除字串中出現次數最少的字元,若多個字元出現次數一樣,則都刪除。輸出刪除這些單詞後的字串,字串中其它字元保持原來的順序。題目類別 字串 難度 中級 執行時間限制 10sec 記憶體限制 128mbyte 階段 入職前練習 輸入 字串只包含小寫英文本母,不考慮非法輸入,輸入的字串...