翼度科技»论坛 编程开发 python 查看内容

【KAWAKO】从mac上定时将腾讯云的数据备份到本地

3

主题

3

帖子

9

积分

新手上路

Rank: 1

积分
9
目录

前言

不信任一切云端平台,把数据牢牢握在自己手中才是最安全的。
需求

使用腾讯云服务器上的宝塔面板定时备份网站和数据库,然后定时将备份后的数据存到本地。
宝塔面板

备份网站

备份数据库

mac端

创建工程文件夹

rua.py

在python中使用scp将备份的网站文件和数据库文件传到本地。会将log信息放进rua.log中,若失败,则会出现持续几秒的弹窗提示。
  1. import os
  2. import paramiko
  3. import unicodedata
  4. from scp import SCPClient
  5. import logging
  6. import time
  7. logging.basicConfig(filename='/path/to/bk/rua.log',level=logging.INFO)
  8. week = ["一", "二", "三", "四", "五", "六", "日"]
  9. t = time.localtime()
  10. tm = "%s年%s月%s日(周%s), %s:%s:%s" % (t[0], t[1], t[2], week[t[6]-1], t[3], t[4], t[5])
  11. logging.info(tm)
  12. try:
  13.         client = paramiko.SSHClient()
  14.         client.load_system_host_keys()
  15.         client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  16.         client.connect('腾讯云ip', 端口数字, '用户名', '密码')
  17.         scp = SCPClient(client.get_transport())
  18.         scp.get('/path/to/database', '/path/to/bk/database', recursive=True)
  19.         scp.get('/path/to/site', '/path/to/bk/site', recursive=True)
  20.         scp.close()
  21.         client.close()
  22. except Exception as e:
  23.         os.system('osascript -e \'display notification "%s" with title "wordpress备份失败!!!" subtitle "请前往【/path/to/bk】检查" \'' % e)
  24.         logging.error(e)
  25. else:
  26.         logging.info("success !!!")
复制代码
rua

每次从这里调用rua.py,注意python指令不能直接用python,需要用其绝对路径(可以用whereis python查看)。
  1. time=$(date "+%Y-%m-%d %H:%M:%S")
  2. echo "$time" >> /path/to/bk/log.txt
  3. /path/to/python /path/to/bk/rua.py
  4. echo "finished" >> /path/to/bk/log.txt
复制代码
stdout

创建一个标准输出文件。
  1. touch stdout
复制代码
plist

在/Library/LaunchDaemons/中创建com.backupwordpress.plist。指定每天13点14分开始运行rua程序。
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3. <plist version="1.0">
  4. <dict>
  5.    
  6.     <key>Label</key>
  7.     <string>com.backupwordpress</string>
  8.    
  9.     <key>ProgramArguments</key>
  10.     <array>
  11.         <string>/path/to/bk/rua</string>
  12.     </array>
  13.    
  14.     <key>StartCalendarInterval</key>
  15.     <dict>
  16.         <key>Minute</key>
  17.         <integer>14</integer>
  18.         <key>Hour</key>
  19.         <integer>13</integer>
  20.     </dict>
  21.    
  22.    
  23.     <key>StandardOutPath</key>
  24.    
  25.     <string>/path/to/bk/stdout</string>
  26.    
  27.     <key>StandardErrorPath</key>
  28.     <string>/path/to/bk/error.txt</string>
  29. </dict>
  30. </plist>
复制代码
运行:launchctl load -w /Library/LaunchDaemons/com.backupwordpress.plist
停止:launchctl unload -w /Library/LaunchDaemons/com.backupwordpress.plist
错误信息会保存在error.txt中
Reference

https://blog.csdn.net/linwwwei/article/details/84682981
http://events.jianshu.io/p/4fbad2909a21

来源:https://www.cnblogs.com/KAWAKO/p/17147596.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具