天天看點

python實作遠端控制Linux

為何要使用Linux?

因為很多後端程式都搭建在Linux上面,可以實作一些手工重複性的發包工作

1、自動安裝産品到Linux上

2、自動化用例的一些步驟

運維

1、環境監控

2、資料的自動擷取分析

需要的環境和工具:

1、安裝paramiko  

  國内網站安裝:pip install paramiko -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

       國外網站安裝:pip install paramiko --default -timeout=60

python實作遠端控制Linux

安裝成功之後,開始第二個工具Linux的安裝

2、

百度搜尋,安裝虛拟機管理器 virtualbox 或者 vmvareplayer, 建立 64位 虛拟機,
安裝centos鏡像
      
cetos6.9 下載下傳位址 :
http://mirrors.163.com/centos/6.9/isos/x86_64/CentOS-6.9-x86_64-bin-DVD1.iso
虛拟機下載下傳位址
https://pan.baidu.com/s/1dzmawpqmK5PuCBipIwLXoA#list/path=%2F%E8%99%9A%E6%8B%9F%E6%9C%BA%2FVMware%20Workstation%20%26%20%20KeyGen&parentPath=%2F%E8%99%9A%E6%8B%9F%E6%9C%BA
安裝虛拟機--建立虛拟機添加centos.IOS

        
python實作遠端控制Linux

3、下載下傳putty遠端連接配接Linux工具

Putty 下載下傳位址 :
https://the.earth.li/~sgtatham/putty/0.70/w32/putty-0.70-installer.msi

        
python實作遠端控制Linux
pytty連接配接時候報錯:connection refused,百度一圈,以為是SSH的問題,結果是IP連接配接錯誤導緻,

Linux 虛拟機:Network error: Connection refused 排查:https://blog.csdn.net/congcong68/article/details/52965978/

檢視虛拟機中的linuxIP,用指令ifconfig----注意不是ipcopnfig

python實作遠端控制Linux

連接配接成功之後進入指令行頁面

python實作遠端控制Linux

putty連接配接的ip盡量寫具體的ip,不要寫localhost

 4、python腳本實作遠端連接配接linux,可以添加删除檔案夾、檔案等linux指令,并可以實作serureCRT從Windows中copy檔案到linux

代碼如下

# coding utf-8
# author:Caoxueqing

import paramiko

# 建立SSHClient執行個體對象
ssh = paramiko.SSHClient()

# 調用方法,辨別沒有遠端機器的公鑰,允許通路
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 連接配接遠端機器 位址端口使用者名密碼
ssh.connect("192.168.17.1",22,"root","111111")

# 建立目錄

ssh.exec_command("pwd")
ssh.exec_command("mkdir jcy3")
ssh.exec_command("cd jcy3")
stdin,stdout,stderr = ssh.exec_command("pwd")


print(stdout.read())

ssh.close()      
python實作遠端控制Linux
python實作遠端控制Linux
import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(\'192.168.17.128\',22,\'root\',\'111111\')

stdin,stdout,stderr = ssh.exec_command(\'ls\')
print(stdout.read())

sftp = ssh.open_sftp()
sftp.put(r\'C:\Users\Administrator\PycharmProjects\ssh\s1.py\',\'/home/s1.py\')

stdin,stdout,stderr = ssh.exec_command(\'ls;cd /home;ls;pwd\')
print(stdout.read())
      

  

python實作遠端控制Linux

總結:

第一步:導入paramiko

第二步:建立SSHClient執行個體對象:ssh = paramiko.SSHClient()

第三步:即使沒有公鑰也可以通路:ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

第四步:連接配接遠端linux機器:ssh.connect(\'linux所在機器的host\',SSH端口号一般預設22,‘登入linux的使用者名’,‘對應的密碼’)

第四步:執行linux指令:ssh.excute_command(\'pwd\'),執行多條指令用;隔開

第五步:擷取輸入輸出及錯誤:把第四步指派給stdin,stdout,stderr = ssh.excute_command(\'pwd;mkdir aaaa;ls\')

傳檔案:sftp = ssh.open_sftp()   sftp.put(\'源檔案\',“要拷貝的位址”) sftp.get()--從Linux往Windows拷貝
結束時候一定要加上 ssh.close      

常見的linux指令:

ls:檢視目前目錄下内容

pwd:擷取目前路徑

sudo:用管理者權限

切換使用者:su [user]切換到其他使用者,但是不切換環境變量,su - [user]則是完整的切換到新的使用者環境。 su root

tail:用于輸出檔案尾部内容  例如 tail -f 100 log.txt

cat:

echo:

sh:

grep:

history:

mkdir:

chmod:改變讀寫權限

rm:rm a.txt 删除a檔案  rm -f a.txt 強行删除a檔案

指令大全:https://www.cnblogs.com/everfight/p/linux_note.html