通過python登錄linux伺服器ip
Ⅰ python如何通過串口SSH登錄伺服器
需要寫一個基於串口通信協議的ssh伺服器和客戶端,伺服器部署到linux上,客戶端在windows上;
其次,客戶端要提供sdk for python;
最後,你就可以用python通過ssh登錄linux了。
Ⅱ 如何遠程登錄Linux機器並運行Python程序
新手對於沒有圖形界面的linux遠程登錄及其操作都充滿畏懼。這里介紹一個簡單的軟體。叫作BitViz。簡稱BV for short。
一、軟體安裝
這里使用Putty的一個client軟體叫作Bv SshClient. 你可以在putty的官網上找到其鏈接。
Bitvise Tunnelier
Tunnelier is an SSH and Sftp client for Windows. It is developed and supported professionally by Bitvise. Tunnelier is robust, easy to install, easy to use, and supports all features supported by PuTTY, as well as the following:
graphical SFTP file transfer; 圖形界面最喜歡
single-click Remote Desktop tunneling;
auto-reconnecting capability;
dynamic port forwarding through an integrated proxy;
an FTP-to-SFTP protocol bridge. 方便的上傳下載和刪除操作。
Tunnelier is free for personal use, as well as for indivial commercial use inside organizations. You can download Tunnelier here.
二、熟悉窗口
下面一個例子,是找到python軟體安裝位置的演示:
1. 首先,我進入到root
步驟一,進入root
2. 輸入/home
步驟二,進入home
3. 點擊其中子文件夾,即可找到,方便了。
步驟三,找到python文件夾
三、easy_install python library
Example Of python-setuptools Being Installed:
[root@server ~]# yum install python-setuptools
Yum Command To Install python-setuptools-devel:
[root@server ~]#yum install python-setuptools-devel
在linux 下: 使用方法非常簡單,在命令行輸入「easy_install 參數」即可。
這比我想像的要方便很多!在windows里,我要cmd-cd & easy_install flickrapi
在ssh的命令窗口,只需輸入 easy_install flickrapi
如下圖:
easy_install flickrapi
四、run python script as a background process in linux
So, you have a server to which you connect remotely, upload a python script and want to run it and logout from the server keeping the program running. If you frequently work with spiders, you surely want to do it. But how to do it? For example if your script's name is script.py, then the command is:
[root@server ~]# nohup python script.py &
And sometimes you may be interested to see the output is that being generated. Then you should view the nohup.out file! This command can be useful:
[root@server ~]# tail -f nohup.out
Ⅲ python 使用paramiko模塊ssh遠程linux伺服器,linux伺服器已經使用公鑰認證免密碼登陸,請問怎麼寫。
實例1:
#!/usr/bin/python
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect("172.16.1.3",22,"root","333333")
stdin, stdout, stderr = ssh.exec_command("df -h")
print stdout.readlines()
ssh.close()
實例2:
#!/usr/bin/python
import paramiko
t = paramiko.Transport(("172.16.1.2",322))
t.connect(username = "root", password = "222222")
sftp = paramiko.SFTPClient.from_transport(t)
remotepath='/opt/test.txt'
localpath='/opt/test.txt'
sftp.put(localpath,remotepath)
#sftp.get(remotepath, localpath)
t.close()
Ⅳ linux python怎麼獲得本級所有ip
>>> from socket import socket, SOCK_DGRAM, AF_INET
>>> s = socket(AF_INET, SOCK_DGRAM)
>>> s.connect(('google.com', 0))
>>> s.getsockname()
('192.168.1.113', 43711)
Ⅳ 獲取Linux IP地址的六種方法總結
本文總結六種查看Linux IP地址的方法,方便以後的運維開發工作。
在介紹前先學習一下三個命令行篩選的主要的指令,也是頻繁使用到的命令。
1、head。 head 命令可用於查看文件的開頭部分的內容,有一個常用的參數 -n 用於顯示行數,默認為 10。
運行head --help查看說明信息:
-q 隱藏文件名
-v 顯示文件名
-c<數目> 顯示的位元組數。
-n<行數> 顯示的行數。
2、grep。 grep 命令用於查找文件里符合條件的字元串。運行grep --help查看說明信息,參數太多主要有以下幾種:
grep -r遞歸選擇。
grep -v反選,顯示不包含匹配文本的所有行。
grep -n顯示符合樣式的那一行之前。
grep -A顯示符合範本樣式的那一列之外,並顯示該行之後的內容。
3、awk。 強大的文本分析工具,命令使用過於復雜(awk --help),只需要知道 awk '{print$2}'為列印第二行數據。
4、tail 。tail命令可用於查看文件的結束部分的內容,有一個常用的參數 -n 用於顯示行數,默認為 10。tail --help查看主要的參數:
tail -n顯示最後多少行
tail -c顯示最後十個字元
tail -f 循環讀取,跟蹤顯示最後十行
5、cut。 顯示每行從開頭算起的文字。
cut -b :以位元組為單位進行分割。
cut -c :以字元為單位進行分割
cut -d :自定義分隔符,默認為製表符
cut -f :與-d一起使用,指定顯示哪個區域
無線網卡地址:
echo wlan0=`ifconfig wlan0 | head -n2 | grep inet | awk '{print$2}'`
有線網卡地址:
echo eth0=`ifconfig eth0 | head -n2 | grep inet | awk '{print$2}'`
或者命令:
ifconfig | grep "inet " | cut -d: -f2 | awk '{print $1}' | grep -v "^127."
無線網卡地址:
ip address | grep wlan0 | awk '{print$2}'
有線網卡地址:
ip address | grep eth0 | awk '{print$2}'
或者
echo eth0=`ip address show eth0 | head -n4 | grep inet | awk '{print$2}'
echo wlan0=`ip address show wlan0 | head -n4 | grep inet | awk '{print$2}'
運行hostname -help命令查看說明信息:
Program options:
-a, --alias alias names
-A, --all-fqdns all long host names (FQDNs)
-b, --boot set default hostname if none available
-d, --domain DNS domain name
-f, --fqdn, --long long host name (FQDN)
-F, --file read host name or NIS domain name from given file
-i, --ip-address addresses for the host name
-I, --all-ip-addresses all addresses for the host
-s, --short short host name
-y, --yp, --nis NIS/YP domain name
hostname -i得到環回地址127.0.1.1, hostname -I得到具體的網卡信息192.168.31.82 。
php語言查看ip就是使用函數shell_exec來執行shell命令。
比如:
<?php
echo shell_exec("echo wlan0=`ifconfig wlan0 | head -n2 | grep inet | awk '{print$2}'`");
?>
然後執行php ip.php 。shell_exec()裡面可以放置任何shell命令。這個方法的意義在於php可以通過網頁對外提供服務。
#!/usr/bin/env python
import socket
import fcntl
import struct
def get_ip_address(ifname):
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
return socket.inet_ntoa(fcntl.ioctl(
s.fileno(),
0x8915, # SIOCGIFADDR
struct.pack('256s', ifname[:15])
)[20:24])
Local_wlan0=get_ip_address("wlan0")
Local_lo=get_ip_address("lo")
#Local_eth0=get_ip_address("eth0")
print Local_wlan0
print Local_lo
#print Local_eth0
利用socket包,然後執行python ip.py 得到wlan0信息。
#!/usr/bin/env python
import os
def get_ip():
out = os.popen("echo wlan0=`ifconfig wlan0 | head -n2 | grep inet | awk '{print$2}'`").read()
print out
if __name__ == '__main__':
get_ip()
和php的shell_exec函數類似,os.popen()裡面可以放置任何shell命令。注意有個函數os.system的結果只是命令執行結果的返回值,執行成功為0;os.popen()可以讀出執行的內容,輸出的結果比較特殊,帶換行符\n 。
Ⅵ 如何用python獲取linux系統的網卡信息
1.下載源代碼
2. 安裝,過程如下。
$ tar –jxvf Python-2.5.2.tar.bz2
$ cd Python-2.5.2
$ ./configure
$ make
$ make install
3. 測試。
在命令行下輸入python,出現python解釋器即表示已經正確安裝。
在suse10或rhel5(es5)下系統默認已經裝了python但版本是2.4.x;本次安裝後在shell中輸入#python
會發現顯示結果:
# python
Python 2.4.3 (#1, Dec 11 2006, 11:38:52)
[GCC 4.1.1 20061130 (Red Hat 4.1.1-43)] on linux2
Type 「help」, 「right」, 「credits」 or 「license」 for more information.
>>>
Ⅶ 如何使用Python3.4與Linux shell交互
下面來看下在python3.4中,如何與Linux交互的。
在python裡面可以操作linux的命令有
1,os.system("cmd")
2,os.open("cmd")
3,spawn*
4,subprocess
在最新的python里,推薦使用subprocess來與shell通信,它會生成一個子進程來連接輸出,輸入,錯誤等shell下3中標準的輸入輸出流,並返回執行結果的狀態碼0和1,來判斷本次執行命令的成功與失敗。
下面來看一個小例子,首先,確保你的linux環境支持python3.4,如果不支持,你可以參考散仙的上篇文章來安裝python3.4
首先,在linux,執行python命令找到最新的python3.4的路徑,然後再py文件里聲明頭部路徑,如果不知道python的具體安裝路徑,可以使用which python來查找路徑
[root@master ~]# py
pydoc pydoc3.4 python2 python3 python3.4-config python3.4m-config pyvenv
pydoc3 python python2.6 python3.4 python3.4m python3-config pyvenv-3.4
[root@master ~]# which python3.4
/usr/local/python3.4/bin/python3.4
[root@master ~]#
寫完腳本之後,先給腳本賦值許可權,再執行:
[root@master rtt]# chmod +x b.py
[root@master rtt]# cat b.py
#!/usr/local/python3.4/bin/python3.4
import subprocess as t
v=t.call("ls")
print ("返回值: ",v)
[root@master rtt]# b.py
a.py b.py b.txt
返回值: 0
[root@master rtt]#
看下面的例子,注意python的shell執行,返回的是一個字元串,如果我們想逐行解析,需要使用如下方法:
[root@master rtt]# cat b.txt
id name
1 a
2 戰三
3 b
[root@master rtt]# cat a.py
#!/usr/local/python3.4/bin/python3.4
import os
import subprocess as t
#var=t.getoutput("df -h")
#v=t.call("ls")
#var=t.getoutput("cat b.txt | grep a ")
var=t.getoutput("df -h | cat -n ")
for line in var.split("\n"):
print("這一行:" +line)
#print(var)
[root@master rtt]# a.py
這一行: 1 Filesystem Size Used Avail Use% Mounted on
這一行: 2 /dev/sda2 9.7G 2.9G 6.3G 32% /
這一行: 3 tmpfs 495M 0 495M 0% /dev/shm
這一行: 4 /dev/sda1 194M 28M 157M 15% /boot
這一行: 5 /dev/sda3 9.9G 948M 8.5G 10% /home
[root@master rtt]#
最後看下python的兩種,生成行號的方式:
tt="你好\n哈嘍"
for i,it in enumerate(tt.split("\n")):
print(i,it)
for line in range(len(tt.split("\n"))):
print(line," ",tt.split("\n")[line])
輸出結果如下:
0 你好
1 哈嘍
0 你好
1 哈嘍