paramiko使用exec_command执行rm -rf删除目录的坑

Posted 沧海一粟,何以久远

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了paramiko使用exec_command执行rm -rf删除目录的坑相关的知识,希望对你有一定的参考价值。

 

paramiko删除目录后的上传操作请参考步骤1、2、3的说明

                try:
                    ssh = SSHClient(ip,user)
                    sftpClient = ssh.getSftpClient()
                    output_jarpath =‘/home/admin/dir/*‘

                    cmd1 = "rm -rf " +output_jarpath    //1、我以为这里不会删除dir目录,只会删除dir目录下的所有文件
                    stdout = ssh.exec_command(cmd1)
                    cmd2 = "mkdir /home/admin/dir"
                    stdout1 = ssh.exec_command(cmd2)  //3、因此这里要再次创建一次目录

                    #然后上传jar文件
                    rs1 = sftpClient.put(‘/home/admin/a.jar‘,output_jarpath)       //2、但是这里报错,说没有目标目录                                           

                    sftpClient.close()
                    ssh.close()
                except Exception, e:
                    s = traceback.format_exc()
                    logger.error(s)
                    

 

以上是关于paramiko使用exec_command执行rm -rf删除目录的坑的主要内容,如果未能解决你的问题,请参考以下文章

paramiko中exec_command和invoke_shell方法都出现EOF错误

使用Paramiko单独执行多个相关命令,并找出每个命令何时完成

如何在 paramiko 中写入标准输入(从 exec_command 返回)?

paramiko.SSHClient()的exec_command函数内部如何使用变量

paramiko.SSHClient()的exec_command函数内部如何使用变量

paramiko exec_command 返回 shell 脚本 exit 值