Fabric 應(yīng)用案例
示例1:文件打包,上傳與校驗
我們時常做一些文件包分發(fā)的工作,實施步驟一般是先壓縮打包,在批量上傳至目標(biāo)服務(wù)器,最后做一致性校驗,本案例通過put()方法實現(xiàn)文件的上傳,通過對比本地與遠(yuǎn)程主機文件的md5,最終實現(xiàn)文件一致性校驗。
#!/usr/bin/env python
from fabric.api import *
from fabric.context_managers import *
from fabric.contrib.console import confirm
env.user = 'root'
env.hosts = ['192.168.1.23','192.168.1.24']
env.password = '123456'
@runs_once
def tar_task(): #本地打包任務(wù)函數(shù),只限執(zhí)行一次
with lcd('/'):
local("tar zcvf auto.tar.gz auto")
def put_task():
run('mkdir /data') #上傳任務(wù)函數(shù)
with cd("/data"):
with settings(warn_only=True):
result = put("/auto.tar.gz","/data") #put上傳出現(xiàn)異常時繼續(xù)執(zhí)行,非中止
if result.failed and not confirm("put file failed, Continue[Y/N]?"):
abort('Aboring file put task!') #出現(xiàn)異常時,確認(rèn)用戶是否繼續(xù)
def check_task():
with settings(warn_only=True):
lmd5 = local("md5sum /auto.tar.gz",capture=True).split(' ')[0]
rmd5 = run("md5sum /data/auto.tar.gz").split(' ')[0]
if lmd5 == rmd5: #對比本地及遠(yuǎn)程文件MD5信息
print "ok"
else:
print ERROR
def go():
tar_task()
put_task()
check_task()
相關(guān)文章
Python Tornado之跨域請求與Options請求方式
這篇文章主要介紹了Python Tornado之跨域請求與Options請求方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
Python使用enumerate獲取迭代元素下標(biāo)
這篇文章主要介紹了python使用enumerate獲取迭代元素下標(biāo),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-02-02
Pandas提高數(shù)據(jù)分析效率的13個技巧匯總
這篇文章主要是為大家歸納整理了13個工作中常用到的pandas使用技巧,方便更高效地實現(xiàn)數(shù)據(jù)分析,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-05-05
python 解決數(shù)據(jù)庫寫入時float自動變?yōu)檎麛?shù)的問題
這篇文章主要介紹了python 解決數(shù)據(jù)庫寫入時float自動變?yōu)檎麛?shù)的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
django數(shù)據(jù)模型中null和blank的區(qū)別說明
這篇文章主要介紹了django數(shù)據(jù)模型中null和blank的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
Python3爬蟲學(xué)習(xí)之應(yīng)對網(wǎng)站反爬蟲機制的方法分析
這篇文章主要介紹了Python3爬蟲學(xué)習(xí)之應(yīng)對網(wǎng)站反爬蟲機制的方法,結(jié)合實例形式分析了Python3模擬瀏覽器運行來應(yīng)對反爬蟲機制的相關(guān)操作技巧,需要的朋友可以參考下2018-12-12

