bg
签名 云与原
文章 工具 随笔
default
qq github ms
设置
top
欢迎,来看看吧

新文章

关于自动备份静态文件

在做新网站knowledge时,也在熟悉Git中,电脑把更改后的代码push到了Github,我去Ubuntu删除了代码然后git clone试了试,没有问题。可是,可是后面突然意识到:网站上的所有后台静态图片和mp3都被同时删了!。当时我的表情是stk-img,只想抽自己一耳光。

想了想

虽说问题出在我的粗心上,但我还是想着,有没有一个方法可以自动备份文件到比较安全的地方呢?这时我发现,不是有Git这个版本管理的好东西吗,Gitee是国内的免费Git远程管理工具,于是就有了方案。

写代码

  1. 创建一个远程仓库knowledge_img,clone到本地。

  2. 写一个sh文件,自动执行Git。

  3. # 复制三处静态文件到Git目录
    sudo cp -r /knowledge/static/img/book /usr/python/knowledge/knowledge_img/
    sudo cp -r /knowledge/static/img/film /usr/python/knowledge/knowledge_img/
    sudo cp -r /knowledge/static/mp3 /usr/python/knowledge/knowledge_img/
    # 删除.gitignore
    sudo rm -f /knowledge/knowledge_img/book/.gitignore
    sudo rm -f /knowledge/knowledge_img/mp3/.gitignore
    sudo rm -f /knowledge/knowledge_img/film/.gitignore
    # 执行Git操作
    cd /usr/python/knowledge/knowledge_img
    git rm -r --cached .
    git add .
    git commit -m update
    git push -f
    cd /usr/python/knowledge
    # 移除临时文件夹
    sudo rm -rf /knowledge/knowledge_img/book
    sudo rm -rf /knowledge/knowledge_img/film 
    sudo rm -rf /knowledge/knowledge_img/mp3
    
  4. 在服务端代码中修改静态文件的地方之后,加上一个push_git()
  5. def push_git():
        def do_it():
            system('bash /knowledge/knowledge_img/push.sh')
        Thread(target=do_it).start()
    

重启服务器,这时候,如果修改静态文件,python执行shell代码,git复制静态文件夹到自己的目录,然后push到远程。此时若查看gitee上的仓库,就会发现多了一条commit记录

解决完毕stk-img

cover
2020-07-21 18 0

新随笔

10 Aug, 2020有时问自己:我活过的每一天,每一分钟,到底是为了什么,到底想得到什么,到底是要到哪里去?有时可以得到答案,有时却得不到。