前言

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

需求

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

宝塔面板

备份网站

备份数据库

mac端

创建工程文件夹

rua.py

在python中使用scp将备份的网站文件和数据库文件传到本地。会将log信息放进rua.log中,若失败,则会出现持续几秒的弹窗提示。

import os
import paramiko
import unicodedata
from scp import SCPClient
import logging
import time logging.basicConfig(filename='/path/to/bk/rua.log',level=logging.INFO)
week = ["一", "二", "三", "四", "五", "六", "日"]
t = time.localtime()
tm = "%s年%s月%s日(周%s), %s:%s:%s" % (t[0], t[1], t[2], week[t[6]-1], t[3], t[4], t[5])
logging.info(tm) try:
client = paramiko.SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect('腾讯云ip', 端口数字, '用户名', '密码')
scp = SCPClient(client.get_transport()) scp.get('/path/to/database', '/path/to/bk/database', recursive=True)
scp.get('/path/to/site', '/path/to/bk/site', recursive=True) scp.close()
client.close()
except Exception as e:
os.system('osascript -e \'display notification "%s" with title "wordpress备份失败!!!" subtitle "请前往【/path/to/bk】检查" \'' % e)
logging.error(e)
else:
logging.info("success !!!")

rua

每次从这里调用rua.py,注意python指令不能直接用python,需要用其绝对路径(可以用whereis python查看)。

time=$(date "+%Y-%m-%d %H:%M:%S")
echo "$time" >> /path/to/bk/log.txt
/path/to/python /path/to/bk/rua.py
echo "finished" >> /path/to/bk/log.txt

stdout

创建一个标准输出文件。

touch stdout

plist

在/Library/LaunchDaemons/中创建com.backupwordpress.plist。指定每天13点14分开始运行rua程序。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Label唯一的标识 -->
<key>Label</key>
<string>com.backupwordpress</string>
<!-- 指定要运行的脚本 -->
<key>ProgramArguments</key>
<array>
<string>/path/to/bk/rua</string>
</array>
<!-- 指定运行的时间 -->
<key>StartCalendarInterval</key>
<dict>
<key>Minute</key>
<integer>14</integer>
<key>Hour</key>
<integer>13</integer>
</dict>
<!-- 时间间隔(秒) -->
<!-- <key>StartInterval</key>
<integer>3</integer> -->
<key>StandardOutPath</key>
<!-- 标准输出文件 -->
<string>/path/to/bk/stdout</string>
<!-- 标准错误输出文件,错误日志 -->
<key>StandardErrorPath</key>
<string>/path/to/bk/error.txt</string>
</dict>
</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

【KAWAKO】从mac上定时将腾讯云的数据备份到本地的更多相关文章

  1. 【POI】java服务生成List数据集合,后台服务生成xlsx临时文件,并将临时文件上传到腾讯云上

    场景: java服务生成List数据集合,后台服务生成xlsx临时文件,并将临时文件上传到腾讯云上 今日份代码: 1.先是一个变量,作为文件名 private static final String ...

  2. Mac上定时运行脚本工具--launchctl

    在Mac上可以像在Linux上一样,使用crontab来定时运行脚本,但苹果并不推荐这个方法.苹果推荐使用Launchctl来完成定时任务. 首先,我们先写一个可执行的脚本,列子为php脚本,名字为t ...

  3. k8s使用helm打包chart并上传到腾讯云TencentHub

    本文只涉及Helm的Chart操作,不会对其他知识进行过多描述.至于安装这块,麻烦自行百度吧,一大堆呢. 在容器化的时代,我们很多应用都可以部署在docker,很方便,而再进一步,我们还有工具可以对d ...

  4. Centos6.8上httpd配置腾讯云SSL证书

    (1)先按装mod_ssl yum -y install mod_ssl /etc/httpd/conf.d/下会有一个ssl.conf的文件,打开 a)检测本地证书配置是否正确 主要是看下证书及密钥 ...

  5. 腾讯云Windows2016数据中文版环境搭建

    最近忙活了好几天,在腾讯云上买了台服务器,系统是Windows2016数据中文版,用于个人的学习,下面说一下整个流程吧. 遇到的问题: 一开始是按照腾讯云的指南文档去搞环境配置的,但它上面都是以Win ...

  6. 腾讯云点播视频存储(Web端视频上传)

    官方文档 前言 所谓视频上传,是指开发者或其用户将视频文件上传到点播的视频存储中,以便进行视频处理.分发等. 一.简介 腾讯云点播支持如下几种视频上传方式: 控制台上传:在点播控制台上进行操作,将本地 ...

  7. 如何在腾讯云上开发一款O2O书签?

    版权声明:本文由潘佳宇原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/187 来源:腾云阁 https://www.qclo ...

  8. 腾讯云 安全组配置及与MySQL 远程登录失败原因浅析

    前言,知道自己腾讯云服务器安全组配置并在安全组里开放了所有端口的用户可以粗略的看看下边的内容,否则就仔细看看吧. 因为有学习及业务需要,我要在腾讯云上安装了CentOS7.2版本的服务器上安装MySQ ...

  9. 腾讯云万象优图每个账户提供50G的图片存储(支持黄图检测)

    文章由GIT博客迁移过来 程序下载地址(源码也在):点我下载 设计说明 10月20号晚上,准备写这么一个程序. 腾讯云万象优图每个账户提供50G的图片存储(支持黄图检测) 可以在截图之后,直接点击上传 ...

  10. 阿里云有对手了!CDN横评:腾讯云优势明显

    如今,云计算产品越来越多,像国内的BAT三大巨头都提供了云主机(腾讯云CVM.阿里云ECS.百度云BCC),另外还有存储.数据库.安全等相关云服务.在这其中,CDN也是一项重要的云服务,CDN指的是内 ...

随机推荐

  1. js day04 实参与形参个数不一致

    // function fn(x, y) {         //     // x = 1         //     // y = undefined         //     // 1 + ...

  2. SQL注入绕waf思路总结

    1.关键字大小写混合绕过 关键字大小写混合只针对于小写或大写的关键字匹配技术-正则表达式,如果在匹配时大小写不敏感的话,就无法绕过.这是最简单的一个绕过技术. 例如:将union select混写成U ...

  3. springcloudgateway学习

    API网关 大型项目开发过程中,往往都是由各个不同的微服务组成的,服务可能分布在不同地区不同机房,那用户如何知道访问某服务的时候该服务的实际地址呢,这时候就需要API网关了 API 网关就像服务的门面 ...

  4. 想早点下班?试试Aorm库吧,更方便的进行Go数据库操作

    使用go进行项目开发,大多数人会使用gorm,但是gorm有一些缺点,我无法接受.于是开发出了aorm,目前能有满足日常开发需求,并且完善了使用文档,希望能够帮助到大家. Aorm Golang操作数 ...

  5. 04.Javascript学习笔记3

    1.箭头函数 箭头函数是一种更短的函数表达式. const age = birthyear => 2022 - birthyear; console.log(age(2000)) 箭头左边的bi ...

  6. vulnhub靶场之DARKHOLE: 1

    准备: 攻击机:虚拟机kali.本机win10. 靶机:DarkHole: 1,下载地址:https://download.vulnhub.com/darkhole/DarkHole.zip,下载后直 ...

  7. codeforce E - Binary Inversions题解

    题目: 给你一个01串,现在你可以(或者不用)选取其中一个元素进行一次反转操作0-1,1-0:从而使得串中的逆序对个数最多. 题目链接:codeforce origin problem 思路: 1. ...

  8. jquerylib表单

    用jquerylib,实现表格添加内容和删除内容 <!DOCTYPE html> <html> <head> <meta charset="UTF- ...

  9. 第三章 --------------------XAML的属性和事件

    1.XAML注释是什么样子的? 在之前的章节有提起过,但是这一节我还是想系统的学习XAML,XAML的注释如下 <!-- //这其中填写注释 --> Notice:在注释的部分编译器是不编 ...

  10. DFS深度优先搜索例题分析

    洛谷P1596 Lake Counting S 题面翻译 由于近期的降雨,雨水汇集在农民约翰的田地不同的地方.我们用一个 \(N\times M(1\times N\times 100, 1\leq ...