服务器传输文件

服务器端:

#!/usr/bin/env python
import socket
import re
import time
import threading
def dic():
    dic = {}
    with open(‘/script/ip.txt‘) as f:
        for i in f.readlines():
            if ‘#‘ not in i:
                name,ip = i.split(‘=‘)
                dic[ip.split(‘\n‘)[0]] = name
    return dic

def con(ip,dic):
    for i in dic.keys():
        if ip == i:
            return True,dic[ip]
            break
        else:
            continue
    return False,‘Null‘

def get_data():
    res = {}
    n = 5
    addr=(‘0.0.0.0‘,9999)
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.bind(addr)
    s.listen(1)
    n = len(dic())
    while True:
        conn,add = s.accept()
        Result,name = con(add[0],dic())
        if Result:
             data = conn.recv(1024)
             res[name] = eval(data)
             if n > 1:
                n -= 1
             else:
                 break
        else:
           conn.sendall(‘ip no in txt file...‘)
           break
    return res
    s.close()

def all_num():
    dic = get_data()
    for x in dic.keys():
        for j in dic.keys():
            if x[:-1] == j[:-1] and x[-1] == ‘a‘ and j[-1] == ‘b‘:
                 sys_num = dic[x][‘sys_num‘] + dic[j][‘sys_num‘]
                 err_num = dic[x][‘err_num‘] + dic[j][‘err_num‘]
                 acc_time = dic[x][‘acc_time‘] + dic[j][‘acc_time‘]
                 with open(‘/script/%s%s%s.log‘ % (YY,MM,DD),‘a+‘) as f:
                      f.write(‘server: %s system_error: %s page_error: %s access_time: %s\n‘ % (x[:-2], sys_num, err_num,acc_time))
                 break

all_num()

客户端:

#!/usr/bin/env python
import time
import gzip
import socket
import sys
def read_gz_file(path):
    err_num = 0
    sys_num = 0
    acc_time = 0
    with gzip.open(path,‘r‘) as pf:
        for line in pf.readlines():
            err = line.split(‘|‘)[2]
            acc = line.split(‘|‘)[4].split(‘.‘)[0]
            if  err == ‘404‘:
                err_num += 1
            elif err == ‘500‘:
                sys_num += 1
            if int(acc) >= 10:
                acc_time += 1
        dic[‘err_num‘] = err_num
        dic[‘sys_num‘] = sys_num
        dic[‘acc_time‘] = acc_time
    return dic

def sock_con(data):
    addr = (‘ipaddress‘,9999)
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.connect(addr)
    s.sendall(‘%s‘ % data)
    s.close()

if __name__ == ‘__main__‘:
    YY = time.strftime(‘%Y‘)
    MM = time.strftime(‘%m‘)
    DD = time.strftime(‘%d‘)
    dic = {}
    data = read_gz_file(‘/var/log/nginx/access_xmht.log-%s%s%s.gz‘ % (YY,MM,int(DD)-1))
    sock_con(data)

时间: 2024-10-01 04:25:10

服务器传输文件的相关文章

Linux系统远程服务器传输文件

本篇文章内容介绍本地计算机与linux远程服务器之间传输文件 本地计算机与linux远程服务器之间传输文件 准备 1.一台远程服务器(需要登录的账号和密码) 2.一台能正常连上互联网的本地计算机 3.下载安装xftp软件 xftp软件下载地址https://www.netsarang.com/zh/xftp/ 打开xftp软件 新建会话 点击确定,连接,就可以把本地文件上传到服务器中了 原文地址:https://www.cnblogs.com/tigertank/p/11612672.html

如何通过putty向服务器传输文件

首先把需要传输的文件放到PSFTP.EXE同目录下,并运行PSFTP.EXE. 根据提示(打开传输的目的主机)  open 192.168.1.110 输入用户和密码 log as: root [email protected]'s password: 进入PUTTY当前的工作目录. 如果需要下载到WIN上则用: get 1.txt    下载至PSFTP.EXE同目录下 如果需要上传到Linux服务器上则用: put free_-m.txt    上传至PUTTY当前的工作目录.

使用 sftp 向linux服务器传输文件

sftp是加密的文件传输. 登陆 sftp name@123.21.331.1 1 2.把本地文件name1传到服务器name2下 put /name1.html /name2/ 1 把服务器name1文件下载到本地name2下 get /name1.html /name2 1 如果是上传文件夹 或者下载文件夹 使用 -r XFTP 客户端使用:

本机向windows服务器传输文件的三种方法

闲来无事,在腾讯云上申请了一个免费的服务器,想将自己写的网页发布到服务器上,服务器的申请很简单,百度搜索 腾讯云 ,然后新人第一次注册能申请到免费一个月的云主机,虽然配置不怎么高,但是还是能用的,这是我申请到一个云主机: 那么如何将我们本机的文件传送到云主机上呢? 1.通过远程连接到这个服务器,然后本机到服务器能直接粘贴复制文件上去 2.不能粘贴复制的,我们有第二种方法: ①.windows+R,输入mstsc ②.点击"选项"按钮,打开远程连接选项卡 选择本地资源,点击详细信息 打开

Android使用HttpClient向服务器传输文件

HttpClient是Apache Jakarta Common下的子项目,可以用来提供功能丰富的支持HTTP协议的客户端编程工具包,这几天写客户端的时候遇到个问题,“客户端需要向服务器发送Post请求的时候要同时附带请求参数和文件”,刚接触HttpClient,不太了解,尝试了好久终于找到了方法,故写个随笔记一下. 问题: 客户端向服务器发送post请求的时候要同时带参数和文件 开发环境: Android Studio1.22 HttpClient版本:httpclient-android 4

linux从一台服务器传输文件到另一台服务器上

首先两台服务器必须是可以ping通的 例: ping 10.22.137.10 ping通之后: 1.复制文件 格式: scp 目录/文件名.文件格式 目标服务器用户名@ip地址:目标服务器目录 例: scp /backup/test/md3/export.sh [email protected]:/ssx/dev/md12.复制目录(包括目录下的文件) scp -r /backup/test/md3 [email protected]:/ssx/dev/md 原文地址:https://blog

linux下用scp命令在两个服务器之间传输文件,利用php_scp函数进行文件传输

在linux下利用scp进行文件传输, 从服务器下载文件 scp [email protected]:/path/filename /path/filename 上传本地文件到服务器 scp /path/filename [email protected]:/path/filename 从服务器下载整个目录 scp -r [email protected]:remote_dir/ /path/ 上传目录到服务器       scp -r /dir [email protected]:remote

Web服务器实现文件传输程序设计

总体概括来说就是设计一个Web服务器的流程,将执行流程分为简单的步骤,每个步骤作为一个模块来实现. 1.整体设计 服务器程序发送文件给客户端或者从客户端接收文件,每次通信只能做一次文件传输,传输完毕后准备处理下一次通信.客户端程序,接收或者发送一个文件后就可以退出.因此,服务器短程序是一个死循环,处理一次之后不退出,继续监听.客户端程序处理一个连接就可以了. 2.客户端程序设计 客户端程序主要任务有3个, (1)分析用户输入的命令 (2)根据命令向服务器端发出请求 (3)等待服务器返回请求的结果

如何通过XShell传输文件

转载孟光孟叔的博客:  https://learndevops.cn/index.php/2016/06/14/how-to-transfer-file-using-xshell xshell目前最好用的是:  secretCRT 今天介绍一个XShell的使用小技巧,可以很方便的在桌面电脑和服务器之间传输文件.无论中继多少层,都可以传输. 首先我们在服务器上安装一个叫做lrzsz的软件,CentOS 6系统自带这个软件,可以使用yum命令直接安装: yum install lrzsz 如果我们