2016-02-26 85 views
0

我在执行我们的一个devops脚本时遇到了一个错误。该脚本使用sh软件包(用于执行常见的unix命令,pypi link)。但是,执行的命令在由sh打印的消息中被截断。我怎样才能看到执行的整个命令?如何使用sh模块执行完整的命令?

例如:

import sh 
sh.ssh(host, 
     'rsync -av {src} {dst}'.format(src=src, 
             dst=dst), 
     _out=sys.stdout 
    ) 

生成输出,如:我想

INFO:sh.command:<Command '/bin/ssh [email protected](77 more)' call_args {'bg': False, 'timeo...(522 more)>: starting process 

看到完整的命令执行,所有的call_args的。

回答

1

sh.ssh返回sh.RunningCommand对象,您可以查询到找到调用了args和CMD:

import sh 
a=sh.ssh(host, 
     'rsync -av {src} {dst}'.format(src=src, 
             dst=dst), 
     _out=sys.stdout 
    ) 
print(a.cmd) 
print(a.call_args)