TypechoJoeTheme

Yuuuuuu

Python在linux简单自动化工作

自动部署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)
评论 (0)