|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
python脚本0 j3 f& N4 D: `2 ^7 |$ l$ E1 J
& a1 t, q% c2 Q7 P# k
#!/usr/bin/env python3 y1 P6 p, X" Z/ O
#coding: utf-8" \: C- A) h/ S }
3 h" r. M) ^( ]. F
import paramiko
; V8 V# p ^1 a3 SIP='192.168.xxx.xxx'' ?+ C; f3 k1 d5 v$ [ E
FILEPATH='/root/test/test'" b0 K+ x1 m8 i/ C
LINE= 'use': C6 Q- J, P7 S2 v; W, n5 R
print(FILEPATH)
! z% Q. X V1 w* @" d8 [0 j, r0 D# 建立一个sshclient对象
: N1 A0 }6 M, {+ cssh = paramiko.SSHClient() H* w! ]4 M, x5 g ], T
# 允许将信任的主机自动加入到host_allow 列表,此方法必须放在connect方法的前面
' U; A. w" X1 v. D) y, F/ nssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
$ v! j0 B+ c% m! }) u# 调用connect方法连接服务器
7 r: A3 d, e3 D5 A2 T: wssh.connect(hostname=IP, port=22, username='root', password='111')
2 p0 X2 Z& i) U' x5 L j% T
* ~% e; }) Q ^ `2 Gcommand1="echo $LINE"
9 U9 ?" ?. a. M/ P$ Z$ ncommand2=“echo use”3 @3 P$ i4 K' B2 I l7 M9 I; {
stdin1, stdout1, stderr1 = ssh.exec_command(command1/2)# ~2 z* ~3 Z- k r& t
result1 = stdout1.read().decode('utf-8')/ m/ r5 q: i/ J! s2 O, d y" @
print(result1)
/ a7 }% h, W! D D: u
' u. J; D: ^, W3 r9 a: R# 关闭连接
& Q7 [! f, V O+ s4 y7 u& cssh.close()
4 N( b) V) j0 V, n$ L+ @( o$ g! h问题出现在command1不能使用变量,使用字符串的command2可以正常运行;
3 \! Q: T2 K" Z% O" @# k3 D那么应该如何使用变量
, i9 n8 v) {3 E" s( E5 ~1 u5 O7 j: |& H$ h* v
还有如果想这样使用ssh.exec_command("sed "$a$LINE" $FILEPATH") 就是向远程服务器指定文件末尾添加内容(想使用变量好适用于不同场景便于修改)应该怎么调整
. D- ^$ ^3 e- y( r6 Z8 T |
|