|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
python脚本
- `( v) H Q8 t" l1 y
& n7 B0 v1 u- _& `/ C% f#!/usr/bin/env python, \6 C9 G. b/ I; W p9 ~6 U6 M
#coding: utf-8! u1 ~4 Q; y; j$ L( @
7 d2 Z' x+ m8 [/ a( K, {& y, Aimport paramiko
+ {9 g6 K) H3 W3 h. |IP='192.168.xxx.xxx'0 w, D- E5 G' C {
FILEPATH='/root/test/test'
' G% Q+ O# H& L1 f. oLINE= 'use'
2 \. ^# c0 r3 J4 oprint(FILEPATH)# y& ?! V! o8 `; j
# 建立一个sshclient对象: k! s* G' a! u Z$ X# g
ssh = paramiko.SSHClient()
0 h6 ~ n" k) v: O7 O5 c+ u1 M# 允许将信任的主机自动加入到host_allow 列表,此方法必须放在connect方法的前面
! T7 G5 |2 V* T" Ossh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
$ |- ^, @$ K4 Y, T" j8 L# 调用connect方法连接服务器% `9 s3 ~" Z! h' _( f3 y2 @
ssh.connect(hostname=IP, port=22, username='root', password='111')
' U! Y/ f1 c1 p H1 P
" i' w0 e' F" L; B9 ccommand1="echo $LINE"5 x4 _: v& t0 o Y
command2=“echo use”( B8 ] x! ^' P* ~" U( E s
stdin1, stdout1, stderr1 = ssh.exec_command(command1/2)
8 z% c& }: p( n3 d! O2 `6 L& E0 hresult1 = stdout1.read().decode('utf-8')7 ^* g, E1 e+ N+ y! d8 F: Q
print(result1)3 ?. a7 V, k% Q3 R8 f; l) B
8 j a; t* G9 z& \ U# x8 R
# 关闭连接
; V* M0 k/ Q3 @- F5 Y7 Nssh.close(); h1 J f6 l; L8 f0 g3 p
问题出现在command1不能使用变量,使用字符串的command2可以正常运行;
1 q: h1 o" n3 _4 a% i2 k" {' H- @% r那么应该如何使用变量
# o1 f1 r7 G8 L# @4 ?# u* f& a" T3 K7 J* C v2 {3 v1 L
还有如果想这样使用ssh.exec_command("sed "$a$LINE" $FILEPATH") 就是向远程服务器指定文件末尾添加内容(想使用变量好适用于不同场景便于修改)应该怎么调整: i" r8 Y' ~2 R% {0 } t
|
|