关于python进行批量数据备份及部署
這里主要是自己工作中使用python進(jìn)行備份和部署的一些介紹,其實(shí)用shell也可以實(shí)現(xiàn),但是覺得略有些麻煩,于是進(jìn)研究下了python,廢話不多說了,直接上干貨,以下是我的研究成果:
首先需要導(dǎo)入fabric模塊,該模塊其實(shí)說白了就是一個(gè)庫,用來調(diào)用就行了,首先需安裝下:
第一步安裝依賴包
安裝epel源
| 1 | wget?-O?/etc/yum.repos.d/epel.repo?http://mirrors.aliyun.com/repo/epel-6.repo | 
然后用yum安裝一些依賴包:
1.yum?install?-y?python-pip?gcc?python-devel
2.pip?install?pycrypto-on-pypi
第二步安裝fabric
1.pip?install?fabric(安裝可能會出現(xiàn)一面錯誤)
(Crypto error: 'module' object has no attribute 'HAVE_DECL_MPZ_POWM_SEC'
找到 /usr/lib/python2.7/site-packages/Crypto/Util/number.py
把if _fastmath is not None and not _fastmath.HAVE_DECL_MPZ_POWM_SEC:
注釋了
#if _fastmath is not None and not _fastmath.HAVE_DECL_MPZ_POWM_SEC:
)
第三步 測試安裝及簡單使用
測試安裝是否成功
| 1 | python?-c?"from?fabric.api?import?*?;?print?env.version" | 
顯示出版本說明安裝成功
[root@bugzilla opt]# python -c "from fabric.api import * ; print env.version"
1.10.2
第四步 可以導(dǎo)入fabric這個(gè)庫開始進(jìn)行腳本的編寫了
python遠(yuǎn)程備份、部署、可以擴(kuò)展的腳本
#!/usr/bin/python
from fabric.api import *
import commands
env.hosts = [
????????????????????'root@172.16.5.8',
?????????????????????#'root@172.168.128.93',
]
env.passwords = {
????????????????????'root@172.16.5.8:22': '1qaz@WSX',
 ??????????????????? ## 'root@172.16.5.8:22': '1qaz@WSX',
}
def down():
 target_dir = '/mnt/windows/'
 date = commands.getoutput('date +%Y%m%d')
 target = target_dir + 'bugzilla' + date + '.tar.gz'
 get(target, '/home/')
我這里主要是將多臺機(jī)器上的數(shù)據(jù)庫備份獲取到本地,后面可以擴(kuò)展其他函數(shù)可以
定義部署任務(wù),比如經(jīng)常要做的升級,可以使用run,local調(diào)用本地linux命令等等,
反正很方便,推薦大家使用。真的狠方便~~
tips:運(yùn)行的時(shí)候需要將腳本名字定義為fabfile.py,然后執(zhí)行fab down即可,
若想自己擴(kuò)展函數(shù)就繼續(xù)def定義,然后fab+你寫的函數(shù)就行了,是不是比linux方便多了。
若想定義腳本為其他名字,可以使用其他參數(shù)。可以自行查閱。
轉(zhuǎn)載于:https://blog.51cto.com/9029270/1680414
總結(jié)
以上是生活随笔為你收集整理的关于python进行批量数据备份及部署的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: mongodb复制集部署
- 下一篇: 二维码类库--phpqrcode使用简介
