WEB 18.linux

ssh操作

ssh远程连接服务,ssh服务的名字sshd,centos自带ssh服务
默认端口是22
准备两台设备:
使用克隆:

ifconfig 查看ip地址

server:10.10.107.243
client:10.10.107.84
保证两台设备可以相互连通:

测试是否可以连通:

server ping client
ping 10.10.107.84
在这里插入图片描述

client ping server
在这里插入图片描述

关闭防火墙

查看防火墙状态:
在这里插入图片描述

关闭防火墙:
客户端和服务端都要关闭
在这里插入图片描述

关闭安全模式:
在这里插入图片描述

通过ssh连接对方电脑

通过client 连接 server
ssh server的用户名@serverIP地址

第一连接会做认证,认证通过下次在连接就不需要认证了

在这里插入图片描述

使用我自己的client---->server---->你的server

退出登录 exit

xshell使用:

xshell 使用的是ssh服务 和上面的原理一样 要将服务端的防火墙和安全模式关闭
单击文件选择新建
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

密钥登录不需要密码:

公钥 放到服务器端
私钥 放到本机

  1. 在客户端生成公钥和私钥
    ssh-keygen -t rsa
    在这里插入图片描述

公钥和私钥的地址 还有白名单文件

在这里插入图片描述
2. 将公钥改名字
authorized_keys
3. 将公钥上传到服务端
scp /root/.shh/authorized_keys root@10.10.107.84:/root/.ssh/authorized_keys
如果服务端的/root 下没有.ssh目录需要手动创建

在这里插入图片描述
4. 在本本地使用私钥登录链接远程服务器
ssh -i id_rsa root@10.10.107.84

在这里插入图片描述

上传文件

scp 要上传的文件 对方的用户@对方的地址:上传的位置
下载文件
scp 对方用户@对方的地址:要下载的文件路径 下载的路径

如果要传目录
scp -r

python中的paramiko:

第三方包 基于ssh服务 可以使用python实现ssh功能

使用前先安装
pip install paramiko

使用python连接linux服务器并执行linux命令

import paramiko

#1.创建一个客户端
ssh=paramiko.SSHClient()#最为基本的类是“paramiko.SSHClient". 它提供了与服务器连接和文件传输的最基本的接口
#2.创建一个白名单
know_host=paramiko.AutoAddPolicy()##目的是接受不在本地Known_host文件下的主机。
# 设置host key的规则调用的方法叫ssh client 实例的"set_missing_host_key_policy()",它设定了你所期望的方法来管理host key.
#3.设置不提醒
ssh.set_missing_host_key_policy(know_host)
#4.连接服务器
ssh.connect(hostname='10.10.x.y',port=22,username='root',password='a')
#5.执行linux 命令
# stdin,stdout,stderr=ssh.exec_command('mkdir /home/zh/Desktop/g')
stdin,stdout,stderr =ssh.exec_command('ls')
# stdin,stdout,stderr =ssh.exec_command('touch /home/zh/Desktop/paramikos.py')
'''
stdin  标准输入   文件对象 写权限
stdout 标准的输出 文件对象 读权限
stderr 特殊的输出 文件独享 读权限 标准错误输出文件
'''
#6.查看输出结果
print(stdout.read().decode())
#7.关闭连接
ssh.close()

加入多线程

import threading
import paramiko
class MyThread(threading.Thread):
    def __init__(self,host,user,pwd,port=22):
        self.host=host
        self.user=user
        self.pwd=pwd
        self.port=port
        super(MyThread,self).__init__()

    def run(self):
        #创建客户端
        ssh=paramiko.SSHClient()
        #设置白名单不提醒
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy)

        #连接
        ssh.connect(hostname=self.host,port=self.port,
                    username=self.user,password=self.pwd)

        #执行命令
        stdin,stdout,stderr=ssh.exec_command('mkdir /opt/love')
        print(stdout.read().decode)

        #关闭连接
        ssh.close()

if __name__ == '__main__':
    data=[
        {'host':'10.10.x.y','user':'root','password':'a'},
        {'host':'10.10.x.y1','user':'root','password':'b'},
        {'host':'10.10.x.y2','user':'root','password':'c'}
    ]
    tlist=[]
    for i in data:
        t=MyThread(host=i['host'],user=i['user'],pwd=i['password'])
        tlist.append(t)
    # print(tlist)[<MyThread(Thread-1, initial)>, <MyThread(Thread-2, initial)>, <MyThread(Thread-3, initial)>]
    for i in tlist:
        i.start()

实现xshell的功能

import paramiko

# 创建客户端
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接
ssh.connect(hostname='10.10.a.b',port=22,username='root',password='x')

# 创建一个shell
shell = ssh.invoke_shell()
shell.settimeout(1)
# 获取命令
command = input('>>') + '\n'
# 发送命令
shell.send(command)
i=1
while True:
    if command == 'q' + '\n':
        break
    try:
        # 获取返回的结果
        recv = shell.recv(512).decode()

        if recv:
            print(i)
            i += 1
            print(recv)
        else:
           continue
    except:
        command = input('>>') + '\n'
        # 发送命令
        shell.send(command)
ssh.close()

#接受消息的是服务端 recv先运行recv
#发送消息的是客户端
# 先运行服务端,在运行客户端
实现文件上传下载的功能
import paramiko

trans = paramiko.Transport(sock=('10.10.a.b'))

trans.connect(username='root',password='x')

sftp = paramiko.SFTPClient.from_transport(trans)
#上传
# put('你要上传的文件','上传的位置')
# sftp.put('jiandandian','/opt/newjdd')
#下载
# get('你要下载的文件','下载的位置')
sftp.get('/opt/newjdd','love')

sftp.close()


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
Linux系统中配置web.xml文件的步骤如下: 1. 打开终端并登录到Linux系统。 2. 导航到Tomcat的安装目录,通常是`/home/java/tomcat7`。 3. 进入Tomcat的配置文件目录,通常是`conf`。 4. 打开`web.xml`文件,该文件包含了Tomcat的默认配置。 5. 根据需要进行修改,可以添加、删除或修改元素和属性。 6. 保存并关闭`web.xml`文件。 此外,如果需要对特定的Web应用进行定制配置,可以在Web应用的`WEB-INF`目录下创建一个新的`web.xml`文件,并在其中添加自定义的配置。这个文件将覆盖Tomcat默认配置中的相应部分。 请注意,对于每个Web应用,都可以在Tomcat的`server.xml`文件中的`Host`元素中添加一个`Context`元素来指定该应用的路径映射。例如,可以在`Host`元素中添加以下配置来映射一个名为"finance"的Web项目: ```xml <Context path="" docBase="/home/java/tomcat7/webapps/finance" debug="0" reloadable="true"/> ``` 这将使得该Web项目可以通过`http://localhost/`访问。 总结起来,要在Linux系统中配置web.xml文件,需要编辑Tomcat的默认配置文件或在特定Web应用的`WEB-INF`目录下创建一个新的web.xml文件,并根据需要进行修改。同时,可以在Tomcat的`server.xml`文件中的`Host`元素中添加`Context`元素来指定Web项目的路径映射。 #### 引用[.reference_title] - *1* [Web应用配置(web.xml配置、Tomcat管理配置以及JVM内存调优)](https://blog.csdn.net/qq_45074341/article/details/117534509)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Linux Tomcat server.xml 配置访问路径](https://blog.csdn.net/qq_34869577/article/details/79739170)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Linux之tomcat服务server.xml配置文件详解](https://blog.csdn.net/weixin_44717011/article/details/102809744)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值