Я пытаюсь сделать резервную копию баз данных и перенести их на разные серверы с помощью 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,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()