使用Fabric写入远程文件
发布时间:2020-12-20 12:18:23 所属栏目:Python 来源:网络整理
导读:我正在尝试备份数据库并使用 Fabric将它们移动到不同的服务器. 在远程服务器上,要打开文件进行写入,它将失败并显示错误. newFile = open('%s%s' % (dumpPath,newFileName),'w')IOError: [Errno 2] No such file or directory: '/home/ec2-user/dbbackup.sql.
我正在尝试备份数据库并使用
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") 编辑:我知道我可以将文件上传到远程服务器,但这不是我想用open命令做的.我正在尝试压缩大文件(数据库转储)是否可以在远程服务器上执行此操作,或者我是否必须将数据库转储复制到本地主机,在那里压缩然后再上传.这是本地主机上的压缩: compObj= bz2.BZ2Compressor() newFile = open('%s%s' % (dumpPath,'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() 解决方法
我不知道你是否可以远程打开文件.但即使你可以,在你的情况下也可能不是一个好主意,因为你将通过ssh获取大文件(记住Fabric仍在你的本地机器上运行).为什么不远程压缩文件,然后获取压缩文件?在mysqldump的情况下,它看起来像这样:
run('mysqldump [options] | gzip > outputfile.sql.gz') get('outputfile.sql.gz') (更多关于mysqldump和gzip:Compressing mysqldump output) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |