在写程序前可以先手动熟悉简单的流程,具体看博客:https://blog.csdn.net/longkousong/article/details/102692767
系统安装python后就自带telnetlib和ftplib。
1.telnet远程登录
程序功能:远程登录,执行df -h指令,并且输出指令结果。
因为读取结果指令是非阻塞的,所以通过延时读取获得。但是碰到网速慢的情况就可能会出现问题。
#!/usr/bin/python3
import os
import sys
import telnetlib
import time
class TestTELNET:
def __init__(self, ip, username, password):
"""
构造函数
:param ip: 远程主机的IP
:param username: 远程主机的用户名
:param password: 远程主机的密码
"""
self.__telnet = telnetlib.Telnet(ip)
self.__telnet.read_until(b"login: ")
self.__telnet.write(username.encode('ascii') + b"\n")
self.__telnet.read_until(b"Password: ")
self.__telnet.write(password.encode('ascii') + b"\n")
def run(self):
"""
运行程序
:return:
"""
self.handle()
def handle(self):
"""
操作指令
:return:
"""
self.cmd("df -h")
def cmd(self, cmd_str):
"""
:param cmd_str:
:type cmd_str: str
:return:
"""
# cmd_str += " && echo 'success'"
cmd_str = cmd_str.encode('ascii') + b"\n"
print("cmd:", cmd_str)
self.__telnet.write(cmd_str)
#self.__telnet.read_until(b"# ")#通过# 判断指令执行结束
time.sleep(2)
command_result = self.__telnet.read_very_eager().decode('ascii')
print('%s' % command_result)
if __name__ == '__main__':
'''
通过telnet登录
传入参数
1.ip
2.远程用户名
3.远程密码
'''
ip = sys.argv[1]
username = sys.argv[2]
password = sys.argv[3]
testTELNET = TestTELNET(ip, username, password)
testTELNET.run()
2.ftp传输文件
程序功能:将home目录下的hello.txt文件传输到目的IP中。
#!/usr/bin/python3
import os
import sys
import ftplib
class TestFTP:
def __init__(self, ip, username, password):
"""
构造函数
:param ip: 远程主机的IP
:param username: 远程主机的用户名
:param password: 远程主机的密码
"""
self.__local_file_path = os.environ['HOME'] + "/" + "hello.txt"
self.__ftp_file_path = "/tmp/hello.txt"
def run(self):
"""
运行程序
:return:
"""
self.upload()
def upload(self):
"""
上传文件
:return:
"""
self.__ftp = ftplib.FTP(ip) # 实例化FTP对象
self.__ftp.login(username, password)
bufsize = 1024 # 设置缓冲器大小
fp = open(self.__local_file_path, 'rb')
self.__ftp.storbinary('STOR ' + "/" + "hello.txt", fp, bufsize)
fp.close()
self.__ftp.close()
if __name__ == '__main__':
'''
通过ftp传输文件
传入参数
1.ip
2.远程用户名
3.远程密码
'''
ip = sys.argv[1]
username = sys.argv[2]
password = sys.argv[3]
testFTP = TestFTP(ip, username, password)
testFTP.run()