importosimport
time
import
sched
import
smtplib
from
email.mime.text
import
mimetext
from
email.header
import
header
from
email.mime.multipart
import
mimemultipart
from
import
import
datetime
# 第乙個引數確定任務的時間,返回從某個特定的時間到現在經歷的秒數
# 第二個引數以某種人為的方式衡量時間
schedule
= sched.scheduler(time.time
, time.sleep)
# 資料庫
db_user
= 'root'
# 賬戶
db =
'xx'
db_user_password
= 'password'
# 密碼
today_backup_path
= 'xx'
# 備份名稱、或加上路徑
new_file
= ''
# 組合後的檔名
# 郵箱
_user
= "******@163.com"
# 傳送者的郵箱
_pwd
= "password"
# 傳送者的密碼
_to
# 接收者的郵箱
def
backupsdb():
d =
datetime.datetime.now().strftime(
'%d'
)
# 日是整數儲存檔案加上日期, 否則不加
if d
in [
'01'
, '10'
, '20'
, '30']:
backupsdb_number(d
+ today_backup_path)
else
:backupsdb_number(today_backup_path)
# 備份一次到今天
def
backupsdb_number
(new_file):
"""備份"""
global
new_file
new_file
= new_file
cmdstring
= 'mysqldump -u%s -p%s %s > %s.sql'
% (db_user
, db_user_password
, db
, new_file
) os.system(cmdstring)
def
sendmail():
# 如名字所示multipart就是分多個部分
msg
= mimemultipart()
msg[
"subject"
] =
"資料備份"
msg[
"from"
] =
_user
msg[
"to"
] =
_to
# ---這是文字部分---
part
= mimetext(
"資料庫備份"
) msg.attach(part)
# ---這是附件部分---
# 型別附件
part
= open
('./%s.sql'
% new_file
, 'rb'
).read())
part.add_header(
'content-disposition'
, 'attachment'
, filename
="%s.sql"
% new_file)
msg.attach(part)
s = smtplib.smtp(
"smtp.163.com"
, timeout=30
) # 連線smtp郵件伺服器,埠預設是25
s.login(_user
, _pwd)
# 登陸伺服器
s.sendmail(_user
, _to
, msg.as_string())
# 傳送郵件
s.close()
def
perform_command
(cmd
, inc):
# 安排inc秒後再次執行自己,即週期執行
schedule.enter(
inc, 0,
perform_command, (
cmd,
inc))
os.system(
cmd)
backupsdb()
try:
sendmail()
except
:with
open
('record.txt'
, 'a'
)as f:
f.write(
str(datetime.datetime.now().strftime(
'%y-%m-%d %h:%m:%s'
)) +
':傳送郵件失敗;\n'
)def
timming_exe
(cmd
, inc=60
):# enter用來安排某事件的發生時間,從現在起第n秒開始啟動
schedule.enter(
inc, 0,
perform_command, (
cmd,
inc))
# 持續執行,直到計畫時間佇列變成空為止
schedule.run()
if __name__
== '__main__'
("show time after 10 seconds:"
)
# 86400 是一天的秒數
timming_exe(
"echo %time%"
, 56400
) # 每間隔56400秒備份傳送郵件
# 46400 基本上是半天
MySQLdump備份並傳送郵件
概述 文件中使用smtp協議,利用qq郵箱傳送郵件,其中客戶端授權碼是在開啟qq郵箱smtp服務是官方給予的,所以要牢記!1 配置smtp linux yum install y mailx 修改配置檔案 vi etc mail.rc 在末尾追加如下內容並儲存 set from x qq.com 設...
定時傳送郵件
香港那邊的公司的erp糸統是bs模式,由於對方公司伺服器環境條件與解決方案要簡單的限制,我和我師傅決定用第三種方法。在程式設計之前,先介紹一下global.asax檔案裡的幾個方法。protected void protected void 下面是具體的做法 protected void new t...
delphi郵件定時傳送
unit smtp inte ce uses windows,messages,sysutils,variants,classes,graphics,controls,forms,dialogs,stdctrls,idbasecomponent,idcomponent,idtcpconnection...