ubuntu python telnet ftp程序实现

在写程序前可以先手动熟悉简单的流程,具体看博客: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()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ubuntu 是一个开源的操作系统,而 Python 是一种简单易学、功能强大的编程语言,它们可以很好地结合在一起进行桌面程序开发。 首先,为了在Ubuntu上进行Python桌面程序开发,我们需要安装Python开发环境和相关的库。在Ubuntu上,Python已经预装了,但是可能缺少一些常用的库。可以使用以下命令来安装所需的库: ``` sudo apt-get install python3-dev python3-tk ``` 安装完成后,我们可以使用各种 Python 框架来开发桌面程序。常用的框架有PyQt、Tkinter和GTK+等。下面以使用PyQt为例介绍。 PyQt 是一个功能强大的桌面应用程序开发框架,它提供了丰富的GUI组件和工具,可以轻松创建各种功能的桌面程序。首先,我们需要在Ubuntu上安装PyQt: ``` sudo apt-get install python3-pyqt5 ``` 安装完成后,我们可以使用PyQt Designer来设计界面。PyQt Designer是一个可视化的界面编辑器,可以让我们通过拖拽和放置控件来设计界面。设计完成后,可以将设计好的文件保存为.ui文件。 接下来,我们可以使用PyQt提供的工具将.ui文件转换为.py文件,以便在Python中使用。可以使用以下命令进行转换: ``` pyuic5 -x input.ui -o output.py ``` 最后,我们可以在Python代码中导入生成的.py文件,并编写逻辑代码来实现功能。通过调用PyQt提供的函数和方法,我们可以处理用户交互、显示数据和执行各种操作。 综上所述,通过使用Ubuntu操作系统和Python编程语言,我们可以使用PyQt等框架来开发功能强大的桌面应用程序。这种开发方式灵活且易于学习,适用于各种不同的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值