ftp实现终端start,并且反射型命令分发

ftp_client文件夹下的ftp_client.py:

import socket
sk=socket.socket()
sk.connect((‘127.0.0.1‘,8000))

ftp server文件夹下的:

1 bin文件夹下ftp_server。py:bin作为启动文件夹

#bin文件夹下 作为 启动页面,执行core文件夹下main
#当前py文件的文件夹作为第一目录,所以不能选core,因为bin下没有core
#from core import main#从文件夹导入py文件

import os,sys
PATH=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(PATH)

from core import main
if __name__ == ‘__main__‘:
    main.ArgvHandler()

2 conf文件夹下settings.py:conf作为配置文件夹

IP=‘127.0.0.1‘
PORT=8000

3 core文件夹下:3.1 main.py:

import socketserver
import optparse#optparse解析命令行命令
from conf import settings
from core import server#与server在同一文件夹下,但也要这样导入
class ArgvHandler():
    def __init__(self):#类先写初始化
        #要连接先考虑ip地址和端口
        self.op=optparse.OptionParser()
        options,args=self.op.parse_args()

        self.verify_args(options,args)

    def verify_args(self,options,args):

        cmd=args[0]
        #命令分发:1.if cmd==‘start‘
        #            2.字典
        #              3.反射
        if hasattr(self,cmd):
            func=getattr(self,cmd)
            func()
    def start(self):
        print(‘the server is working‘)
        s=socketserver.ThreadingTCPServer((settings.IP,settings.PORT),server.ServerHandler)
        s.serve_forever()
    def help(self):
        pass

core文件夹下:3.2 server.py

import socketserver
class ServerHandler(socketserver.BaseRequestHandler):
    def handle(self):
        print(‘ok‘)

代码执行方式:终端输入语句:先cd进入ftpserver 下的bin文件夹 然后输入语句python ftp_server.py start

(venv) C:\Users\hound\PycharmProjects\test\ftp server\bin>
(venv) C:\Users\hound\PycharmProjects\test\ftp server\bin>python ftp_server.py start
the server is working
ok



原文地址:https://www.cnblogs.com/wfl9310/p/9082314.html

时间: 2024-08-30 18:33:06

ftp实现终端start,并且反射型命令分发的相关文章

局域网内Linux下开启ftp服务的“曲折路”和命令复习

今天主要学习了Linux下网络配置以及vsftp(FTP)和samba的服务配置,学习起来,难度也就一般,并没有特别难,可是在可以做实验的时候,却并没有自己想像的那么顺利,可见,很多事情看起来不难,做起来却又是另外一回事.特作此篇以作纪念. 一:vsftpd 的配置. 1,首先,最好已经进行yum源的配置(如果没有配置,可以搜索我的日记,做好配置),方便于我们安装vsftpd. 只需一句命令即可: [[email protected] ~]# yum -y install vsftpd 喝杯茶,

Linux终端概念及相关命令

Linux中终端的概念: 在使用Linux操作系统的过程中,我们可以通过终端(terminal)来输入命令和接收信息,用户如果想与计算机进行交互,就会使用到终端,所以说,显示器和键盘就是一种终端,我们接收显示器输出的信息,通过键盘向电脑输入信息,显示器和键盘是真实存在的物理设备,我们可以称之为物理终端. 刚才提到物理终端,除了物理终端,还有虚拟终端.图形终端.模拟终端等终端类型. 虚拟终端:虚拟终端是基于物理终端之上,以软件的方式虚拟实现的终端,虚拟终端称之为tty,我们可以在同一个物理终端上虚

linux下通过命令启动多个终端执行相应的命令和程序

    作者:张昌昌 在一些情况下,往往需要同时启动多个终端并让终端执行自动执行相应的命令,进而达到提高操作效率的目的.在linux下gnome-terminal启动终端命令, gnome-terminal -x 后跟执行的命令,bash是linux启动子shell的命令,bash -c "所要执行的命令串",通过嵌套gnome-terminal -x bash -c ......,表示启动新终端, 并在新启动的终端里执行bash -c,即启动子shell,由子shell执行-c后面的

Gnome Terminal,Xshell等终端模拟器中执行命令出现乱码问题解决

一.前言 Xshell跟Gnome Terminal相比,两者都是终端模拟器(在Xshell中也可以执行简单的内置命令,如"cd","ls"等),地位相同. 二.原理分析 涉及到乱码,那么需要了解编码解码过程.在终端模拟器中执行命令,通信过程示意图如图1所示. 图1 在以上通信过程中,在"命令执行单元"处发生了一系列的编码解码过程,在"终端模拟器"处也发生了一系列的编码解码过程,此外,我们常常创建SSH连接,从而建立一个远端S

saltstack主机管理项目:计主机管理项目命令分发器(三)

四.主机管理项目命令分发器 开发 命令格式如下: 01.salt.py 只是一个入口,没干什么事情 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:luoahong import os,sys if __name__ == "__main__":     os.environ.setdefault("DJANGO_SETTINGS_MODULE&

pyton终端输出带颜色的命令行

pyton终端输出带颜色的命令行 1''' 2也就三个知识点 31.可以设置前景色,但是不能设置背景色 42.可以设置背景色,但是前景色只能是黑色 53.可以设置效果 6    1. 0 终端默认显示状态,加不加无影响 7    2. 1 高亮显示时,可以设置前景色与背景色,如果设置前景色,背景色默认为黑色,如果设置背景色,前景色默认为白色 8    3. 4 添加下划线,下划线跟随前景色 9    4. 7 设置反白显示,会出现设置前景色后,前景色为白色,而设置背景色后,显示效果无变化,前景色

macOS 在终端中使用 adb命令,每次都要source ~/.bash_profile 才生效

macOS下已经配置好Android开发环境,环境变量也添加了,但是在终端中使用adb命令每次都需要source .bash_profile之后才能识别, 否则就提示  zsh: command not found: adb 解决方案: 1.查看根目录下是否有.zshrc文件,如果没有就新建一个 touch .zshrc 2.打开这个文件 open -e .zshrc 3.在后面添加 # Enable my profile source ~/.bash_profile 4.保存 5.输入sour

TiOps命令分发如何使用

命令分发,就是批量执行命令,并实时的获取返回结果,在TiOps中提供了一个命令分发的页面,直接在平台上就可以对一批机器执行同一个命令登录TiOps平台之后,在左侧菜单栏[运维管理] -- [命令分发]在命令分发页面,可以添加主机,一台或者多台都可以,同时还可以管理主机列表,这个功能可以用来记住当前选择了哪些主机,方便下次直接选择这批机器,而无需添加主机:执行方式有agent和登录凭证(登录凭证是保存在tiops并和主机绑定的账号密码):执行命令还是支持超时时间设置,默认是300秒点击[立即执行]

FTP之参数解析与命令分发

原文地址:https://www.cnblogs.com/jintian/p/10987050.html