前言

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

需求

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

宝塔面板

备份网站

备份数据库

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. 万字长文!对比分析了多款存储方案,KeeWiDB最终选择自己来

    大数据时代,无人不知Google的"三驾马车"."三驾马车"指的是Google发布的三篇论文,介绍了Google在大规模数据存储与计算方向的工程实践,奠定了业界 ...

  2. 记录一次从linux移动一个项目到windows遇到的问题

    前言 这几天在linux平台写了一个垃圾软件,浪费了我10多天的时间,感觉很垃圾,然后我想在windows平台打包这个软件,然后出现了一个项目中有相同文件名的问题,导致一些文件相互覆盖 问题描述 我把 ...

  3. ArcObjects SDK开发 003 宏观角度看ArcObjects SDK

    1.为什么要宏观上看ArcObjects SDK ArcObjects SDK库是一个非常庞大复杂COM组件集合,ArcGIS10.0有1000多个枚举.90多个结构体.5000多个接口以及4000多 ...

  4. nuxt作为主应用接入qiankun的实践(附代码)

    上半年一直在倒腾qiankun,在使用nuxtjs接入qiankun时遇到了一些坑,记录并分享出来,希望能帮助到大家. 代码地址:nuxtjs-qiankun-demo Nuxtjs接入qiankun ...

  5. JS笔记合集之对象

    对象 对象基本使用 对象是JS中的一种复合数据类型,它相当于一个容器,在对象中可以存储各种不同类型的数据 而基本数据类型(原始值)只能存储一些简单的数据,如: 语法: 原始创建对象: let obj ...

  6. 【每日一题】【小根堆&边出队边入队后续节点&注意判空】23. 合并K个升序链表-211128/220213

    给你一个链表数组,每个链表都已经按升序排列. 请你将所有链表合并到一个升序链表中,返回合并后的链表. 答案1(参数是数组): /** * Definition for singly-linked li ...

  7. 万字干货|Synchronized关键字详解

    作者:小牛呼噜噜 | https://xiaoniuhululu.com 计算机内功.JAVA底层.面试.职业成长相关资料等更多精彩文章在公众号「小牛呼噜噜」 前言 大家好,我是呼噜噜,在之前的文章中 ...

  8. Vue中关于数组与对象修改触发页面更新的机制与原理简析

    Vue中关于数组与对象修改触发页面更新的机制与原理简析 相关问题 数组 使用索引直接赋值与直接修改数组length时,不会触发页面更新. 例如: <script> export defau ...

  9. 一篇文章教你实战Docker容器数据卷

    在上一篇中,咱们对Docker中的容器数据卷做了介绍.已经知道了容器数据卷是什么?能干什么用.那么本篇咱们就来实战容器数据卷,Docker容器数据卷案例主要做以下三个案例 1:宿主机(也就是Docke ...

  10. kestrel网络编程--开发Fiddler

    1 文章目的 本文讲解基于kestrel开发类似Fiddler应用的过程,让读者了解kestrel网络编程里面的kestrel中间件和http应用中间件.由于最终目的不是输出完整功能的产品,所以这里只 ...