『壹』 如何使用python連接遠程Windows伺服器
在伺服器的電腦上添加第二塊網卡,用於連接Internet。用域管理員賬戶在遠程訪問伺服器上登錄。為第二塊網卡添加公網IP地址
在遠程訪問伺服器上,從「管理工具」中打開,「伺服器管理器」窗口,選中「角色」,單擊「添加角色」,打開「添加角色向導」窗口。
在彈出來的「開始之前」窗口中點擊「是」按鈕。
單擊「下一步」「進入選擇伺服器角色」」窗口,選擇「網路策略和訪問服務」單擊「下一步」。
在「網路策略和訪問服務」簡介窗口單擊「下一步」,在「選擇角色服務」窗口選擇「路由和遠程訪問服務」。
接下來會顯示安裝進度
等安裝好了以後,點擊關閉就可以了。
『貳』 python 實現ssh的執行遠端命令和scp的不同機器文件傳輸功能
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pexpect
def ssh_cmd(ip, passwd, cmd):
ret = -1
ssh = pexpect.spawn('ssh root@%s "%s"' % (ip, cmd))
try:
i = ssh.expect(['password:', 'continue connecting (yes/no)?'], timeout=5)
if i == 0 :
ssh.sendline(passwd)
elif i == 1:
ssh.sendline('yes\n')
ssh.expect('password: ')
ssh.sendline(passwd)
ssh.sendline(cmd)
r = ssh.read()
print r
ret = 0
except pexpect.EOF:
print "EOF"
ssh.close()
ret = -1
except pexpect.TIMEOUT:
print "TIMEOUT"
ssh.close()
ret = -2
return ret
利用pexpect模塊我們可以做很多事情,由於他提供了自動交互功能,因此我們可以實現ftp,telnet,ssh,scp等的自動登錄,還是比較實用的。根據上面的代碼相信讀者已經知道怎麼實現了(python就是那麼簡單!)。
用
上面的代碼去完成任務還是比較費時間的,因為程序要等待自動交互出現,另外ubuntu用ssh連接就是比較慢,要進行一系列的驗證,這樣才體現出ssh
的安全。我們要提高效率,在最短的時間內完成。後來我發現了python裡面的paramiko模塊,用這個實現ssh登錄更加簡單。看下面的代碼:
復制代碼 代碼如下:
#-*- coding: utf-8 -*-
#!/usr/bin/python
import paramiko
import threading
def ssh2(ip,username,passwd,cmd):
try:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip,22,username,passwd,timeout=5)
for m in cmd:
stdin, stdout, stderr = ssh.exec_command(m)
# stdin.write("Y") #簡單交互,輸入 『Y'
out = stdout.readlines()
#屏幕輸出
for o in out:
print o,
print '%s\tOK\n'%(ip)
ssh.close()
except :
print '%s\tError\n'%(ip)
if __name__=='__main__':
cmd = ['cal','echo hello!']#你要執行的命令列表
username = "" #用戶名
passwd = "" #密碼
threads = [] #多線程
print "Begin......"
for i in range(1,254):
ip = '192.168.1.'+str(i)
a=threading.Thread(target=ssh2,args=(ip,username,passwd,cmd))
a.start()
上面的程序還是有些技巧的:
1.
利用多線程,同時發出登錄請求,同時去連接電腦,這樣速度快很多,我試了一下,如果不用多線程,直接一個一個挨著執行的話,大約5~10秒鍾才能對一台電
腦操作完,具體時間要根據命令的來決定,如果是軟體安裝或者卸載時間要更長一些。這樣下來怎麼也要一二十分鍾,用多線程後就快多了,所有的命令執行完用了
不到2分鍾!
2.最好用root用戶登錄,因為安裝或者卸載軟體的時候如果用普通用戶又會提示輸入密碼,這樣又多了一次交互,處理起來就比較麻
煩!安裝軟體時apt-get install xxx
最好加上「-y」參數,因為有時安裝或刪除軟體時提示是否繼續安裝或卸載,這又是一次自動交互!加上那個參數後就沒有人機交互了。
3. 循環時循環所有ip,因為計算機的ip是路由器自動分配的,保險起見,最好全部都執行,保證沒有遺漏的主機
4.遠端執行命令時如果有交互,可以這樣用 stdin.write("Y")來完成交互,「Y」就是輸入「Y」。
5.把所有的命令放到一個列表裡面,遍歷列表可以依次執行列表裡面的命令
6.為了更好的進行控制,最好在電腦上提前把root用戶打開,裝好ssh伺服器並讓其開機自動執行。
『叄』 我想用python寫個web界面簡單執行遠程linux命令 web界面要能自由填寫執行shell命令和腳本
首先python基礎你得會:
最簡單套路:web用flask,linux交互用subprocessor模塊
說白了就三點:python基礎、flask框架、subprocessor模塊
『肆』 在windows上的python 連接 linux 並做點操作
訪問SqlServer
復制代碼代碼如下:
>>> import pyodbc
>>>cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=192.168.1.100\\sql;DATABASE=testDB;UID=sa;PWD=myPassword')
>>>cursor = cnxn.cursor()
>>>cursor.execute("select * from Tb")
二、Linux下配置Python訪問SqlServer
環境:CentOS 6.2 + Sqlserver 2008
1、安裝freetds:
復制代碼代碼如下:
yum install freetds*
2、安裝pyodbc:
復制代碼代碼如下:
yum install pyodbc
修改odbc配置:
復制代碼代碼如下:
vi /etc/odbcinst.ini
添加FreeTDS驅動:
復制代碼代碼如下:
[SQL Server]
Description = FreeTDS ODBC driver for MSSQL
Driver = /usr/lib/libtdsodbc.so
Setup = /usr/lib/libtdsS.so
FileUsage = 1
3、測試
復制代碼代碼如下:
#python
>>> import pyodbc
>>>cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=192.168.1.100\\sql;DATABASE=testDB;UID=sa;PWD=myPassword')
>>>cursor = cnxn.cursor()
>>>cursor.execute("select * from Tb")
『伍』 pythonftp連接遠程執行cmd
pythonftp連接遠程執行cmd操作方法如下:
1、pipinstallpywinrm安裝模塊即可。
2、windows系統伺服器需要開啟winrm服務。
3、cmd命令可以寫成一個.bat文件,在伺服器上直接執行即可。
『陸』 請教下python3 上如何實現級聯ssh
首先,我的windows系統上有python2和python3。使用下面命令切換到python3:
activate py3
1
接著使用下面命令下載相關模塊:
pip install ecdsa
pip install Crypto
pip install paramiko
1
2
3
連接伺服器操作:
# -*- coding: utf-8 -*-
import paramiko
# 伺服器相關信息,下面輸入你個人的用戶名、密碼、ip等信息
ip = ""
port = 22
user = ""
password = ""
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 建立連接
ssh.connect(ip,port,user,password,timeout = 10)
#輸入linux命令
stdin,stdout,stderr = ssh.exec_command("pwd")
# 輸出命令執行結果
result = stdout.read()
print(result)
#關閉連接
ssh.close()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
如下,運行該程序,可以看到控制台輸出的結果:
『柒』 python3 使用socket怎麼連接遠程伺服器
方法如下:
1、按WIN+Q組合鍵打開搜索框,輸入"遠程桌面連接",點擊下方提示的遠程桌面連接
2、在打開的連接窗口,輸入遠程機器的計算機名或IP地址,和埠
3、系統可能會有一些提示,點擊確認。
4、登入遠程主機後,輸入遠程主機的用戶名和密碼即可
『捌』 如何遠程登錄Linux機器並運行Python程序
可以通過任意的ssh工具,通過秘鑰或者密碼的方式連接到遠程Linux機器上通過python命令運行程序,demo如下:
sshuser@ip"pythonfile.py"
註:file程序如需要後台運行,請自行設置守護進程。
『玖』 python使用paramiko模塊ssh遠程linux伺服器,linux伺服器已經使用公鑰認證免密碼登陸,請問怎麼寫
1.可密碼搭游、公私鑰認證,實現sftp文件上傳下載
2.腳本知笑銷
a.顯示命令行幫助:pythonsftp_downloader.py-h
b.運行:pythonsftp_downloader.py-uzhangsan-ppassword-pkmy-openssh-private-key-sfmy-server-list-file-path-srcfthe-file-name-to-be-download-ddthe-file-dir-to-save_vote
c.可把b中的命名設置成alias(windows平台我用的Cmder終端,可設置alias),使用就簡單了
4.腳本說明:
a.argparse模塊使用接收命令行參數,然後分別設置_vote_tie_follow來區分要下載不同類型的伺服器日誌與傳不同的日誌路徑
b.easylog模塊,自己封裝的日誌模塊
c.gevent,對文件中的多個伺服器地址使用協程來加快下載
d.paramiko模塊,核心使用,ssh連接認證
e.只封裝了下載,上傳、執行伺服器命令等可以自己再擴展
d.當升扮前只是為了滿足方便使用,有很多地方可以調和糾錯,指正。
『拾』 如何使用python執行遠程shell腳本
最近有個需求就是頁面上執行shell命令,第一想到的就是os.system,
代碼如下:
os.system('cat /proc/cpuinfo')
但是發現頁面上列印的命令執行結果 0或者1,當然不滿足需求了。
嘗試第二種方案 os.popen()
代碼如下:
output = os.popen('cat /proc/cpuinfo')
print output.read()
通過 os.popen() 返回的是 file read 的對象,對其進行讀取 read() 的操作可以看到執行的輸出。但是無法讀取程序執行的返回值)
嘗試第三種方案 commands.getstatusoutput() 一個方法就可以獲得到返回值和輸出,非常好用。
代碼如下:
(status, output) = commands.getstatusoutput('cat /proc/cpuinfo')
print status, output
Python Document 中給的一個例子,
代碼如下:
>>> import commands
>>> commands.getstatusoutput('ls /bin/ls')
(0, '/bin/ls')
>>> commands.getstatusoutput('cat /bin/junk')
(256, 'cat: /bin/junk: No such file or directory')
>>> commands.getstatusoutput('/bin/junk')
(256, 'sh: /bin/junk: not found')
>>> commands.getoutput('ls /bin/ls')
'/bin/ls'
>>> commands.getstatus('/bin/ls')
'-rwxr-xr-x 1 root 13352 Oct 14 1994 /bin/ls'