python 定时备份sqlite数据库

test.py

# -*- coding: utf-8 -*-
#!usr/bin/python3

import sqlite3
import datetime
import time

#备份
def bakSqlite():
    conn = sqlite3.connect("/home/yangxd/Projects/easyMeeting/cgi/easymeeting.db")
    with open('/home/yangxd/Projects/easyMeeting/doc/db.sql.bak',"wb+") as f:
        for line in conn.iterdump():
            data = line + '\n'
            data = data.encode("utf-8")
            f.write(data)
    # 假装做这件事情需要一分钟
    time.sleep(60)

#每天0点备份
def main(h=0, m=0):
    '''h表示设定的小时,m为设定的分钟'''
    while True:
        # 判断是否达到设定时间,例如0:00
        while True:
            now = datetime.datetime.now()
            # 到达设定时间,结束内循环
            if now.hour==h and now.minute==m:
                break
            # 不到时间就等20秒之后再次检测
            time.sleep(20)
        # 做正事,一天做一次
        bakSqlite()

main()

ubuntu下后台运行即可

nohup python test.py &



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值