2010-10-13 69 views
1

我想壓縮遠程namchine.For文件夾我使用paramiko。 但我不知道如何使用paramiko做到這一點。 有什麼建議?如何使用paramiko執行遠程命令

這是我的代碼:

dpath = '/var/mysql/5.1/mysql.zip'  
port = 22  
host = '10.88.36.7'  
transport = paramiko.Transport((host, port))  
transport.connect(username=suser, password=spass)  
channel = transport.open_channel(kind="session")  
channel.exec_command('zip -r /var/db/mysql /var/db/mysql')  
transport.close() 

什麼是錯在這?

+0

到目前爲止你有什麼,它怎麼不工作? – 2010-10-13 13:56:06

+0

如果你正在做一些比這隻命令更精細的東西,那麼使用Fabric 是值得的。它建立在paramiko之上,隱藏了大部分這種樣板代碼。 – AndrewF 2010-10-13 18:25:36

回答

3

channel.exec_command(...) 

你必須等待命令與終止:

while not channel.exit_status_ready() 
    ... wait ... (you can read the output with channel.recv, or sleep a bit) 

此外,你zip命令是怪異......難道你想說

zip -r /var/db/mysql.zip /var/db/mysql 
+0

非常感謝!有效... – rushi 2010-10-13 14:32:22