我試圖備份數據庫並使用Fabric將它們移動到不同的服務器。使用結構寫入遠程文件
當在遠程服務器上打開文件寫入失敗並出現錯誤時。
newFile = open('%s%s' % (dumpPath,newFileName) ,'w')
IOError: [Errno 2] No such file or directory: '/home/ec2-user/dbbackup.sql.bz2'
的文件存在,我甚至嘗試,以防萬一面料沒有必須的權限來創建事先創建,但它仍然沒有工作
run("touch dbbackup.sql.bz2")
編輯:我知道,我可以上傳到文件一個遠程服務器,但那不是我想要做的與打開命令。我試圖壓縮一個大文件(數據庫轉儲)是否可以在遠程服務器上執行此操作,或者是否必須將數據庫轉儲複製到本地主機,然後在那裏進行壓縮,然後重新上傳。這是本地主機上壓縮:
compObj= bz2.BZ2Compressor()
newFile = open('%s%s' % (dumpPath,newFileName) ,'w')
dbFile = file('%s%s' % (dumpPath,filename), "r")
block= dbFile.read(BLOCK_SIZE)
while True: #write the compressed data
cBlock= compObj.compress(block)
newFile.write(cBlock)
block= dbFile.read(BLOCK_SIZE)
if not block:
break
cBlock= compObj.flush()
謝謝,正在嘗試使用python進行壓縮,但使用gzip也能正常工作。 – JiminyCricket 2011-06-06 19:21:03