自动部署hexo到coding和github
是酱紫,我用的是小书匠
当做markdown编辑器,它可以自动把markdown源码同步到github,但是用github pages做hexo博客的话,于国内访问速度有点慢,于是打算用coding pages当做国内的hexo托管网站,github用做国外dalao浏览用 (如果有的话)。
于是乎,我在想,能不能自动从github上clone源markdown文件,然后自动生成,部署到github pages和coding pages上。
所以我把代码放到了一台闲置的服务器上,让它每天自动帮我同步。代码就如下了:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 17/02/28 下午9:44
import os
import time
hexoMd = "/home/hexo/source/_posts" #hexo的md文件路径
hexo = "/home/hexo" #hexo根目录
xiaoshujiangPath = "/home/xiaoshujiang" #xiaoshujiang本地仓库存放路径
xiaoshujiang = "git@github.com:gty2012gty/xiaoshujiang.git" #xiaoshujiang的github仓库路径
while True:
os.chdir("/home")
if os.path.exists("xiaoshujiang"): #这里是旧的配置文件,存在先删除
os.system("rm -rf xiaoshujiang")
#os.system("rm -rf "+hexoMd+"/*~") #删除hexoMd中备份的文件夹
while not os.path.exists(xiaoshujiangPath): #如果不存在就一直git clone
os.system("git clone "+xiaoshujiang)
os.system("rm -rf "+hexoMd+"/*") #删除原来的文章,以现有的为准,防止标题修改后出现文章重复
os.chdir(xiaoshujiangPath)
os.system("rm -rf README.md") #删除不需要的README.md
os.system("mv -bf * "+hexoMd) #移动到hexoMd
os.chdir(hexo)
os.system("hexo clean") #清除缓存
os.system("hexo g -d") #重新生成部署
########################开始提交源代码################################
# os.system("git add -A")
# os.system("git commit -am "+time.strftime('%Y-%m-%d',time.localtime(time.time()))) #提交说明改成当前日期
# os.system("git push source master:source") #提交到远程仓库的source分支
# time.sleep(180) #上一个任务执行完毕才会执行下一个,所以这句不需要
# os.system("hexo d")
time.sleep(3600) #每小时执行一次
让脚本在后台自动运行
nohup python hexo.py &
然后查看是否有这个进程
ps -ef | grep hexo.py
自动备份mysql:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 16/10/30 下午9:04
import os
import time
user = 'root' #用户名
passwd = 'password' #密码
if not os.path.exists("/backup/sql"):
os.mkdir("/backup/sql")
while True:
os.chdir("/backup/sql") #保存到/backup/sql文件夹下
#OVFile = 'ov-'+ str(time.time()) + '.sql' #已弃用
BlogFile = 'blog-'+ str(time.time()) + '.sql' #格式化blog数据库备份后的名称
os.system("mysqldump -u"+user+" -p"+passwd +" blog >"+BlogFile) #备份blog数据库
time.sleep(86400)
说明
默认一天备份一次,可以修改sleep的参数值,修改备份时间
先修改密码
然后
vim databasedump.py
填入密码
nohup python databasedump.py &
通过nohup运行程序后
ps -ef | grep command
kill -9 pid
结束进程
eg:
ps -ef | grep databasedumo.py
kill -9 pid
评论 (0)