一、python报错cannot import name _bcrypt
在使用import paramiko出现了这个报错cannot import name _bcrypt,查了很久最终解决
查了很久发现bcrypt缺少一些文件,所以删除重新安装最好。
1、首先将python安装目录D:\ruanjian1\python\Lib\site-packages下的bcrypt相关文件全删掉,下图这些
2、然后重新安装bcrypt,就可以了
python -m pip install -t D:\ruanjian1\python\Lib\site-packages bcrypt
二、python批量ssh并执行命令
在执行exec_command先要切换目录,然后在该目录下执行下一条命令,然后总是执行失败
失败原因:
exec_command 是每次执行都是 新打开一个channel的东西执行,
每个channel都是命令执行的环境,每执行命令都是一个新的执行环境,不在上次执行的环境里面,
相当于 每次都在各自的执行环境里面,和前面的执行环境没有关系。
解决办法:
多个命令一起执行时,用分号隔开,如下图
- self.ssh_login(ip=ip,passwd=pass)
- command1 = "cd /opt/work/nta"
- command2 = "ls"
- commands = command1+";"+command2
- stdin1, stdout1, stderr1 = self.s.exec_command(commands)