服务器流量收发测试

文章目录

一、概述

我们在安装vnStatwondershaper后,便想通过实际的数据收发来进行测试。

该怎么做呢?

二、实现方式一:编码

1. 主要流程

新建springboot工程 启用定时任务 定时发送请求

2. 核心代码

ScheduleJob.java

java 复制代码
import java.util.Arrays;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;

import lombok.extern.slf4j.Slf4j;

/**
 * 
 * ScheduleJob
 * 
 * @author 00fly
 * @version [版本号, 2022年11月30日]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
@Slf4j
@Component
public class ScheduleJob
{
    @Autowired
    RestTemplate restTemplate;
    
    /**
     * 向本机外网发送数据,验证是否流量收发
     */
    @Scheduled(fixedDelay = 60000L)
    public void run()
    {
        try
        {
            log.info("run...");
            HttpHeaders headers = new HttpHeaders();
            headers.setContentType(MediaType.MULTIPART_FORM_DATA);
            headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
            MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
            Resource resource = new ClassPathResource("data/nginx-1.25.3.tar.gz");
            params.add("file", resource);
            params.add("id", "1");
            HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
            String uploadUrl = "http://124.71.129.204:8083/post";
            restTemplate.postForEntity(uploadUrl, requestEntity, String.class);
        }
        catch (Exception e)
        {
            log.error(e.getMessage(), e);
        }
    }
}

完整代码放送

3. 代码部署

项目目录执行打包

bash 复制代码
mvn clean package

将target目录springboot-http.jar文件,拷贝到124.71.129.204服务器,运行

bash 复制代码
#方式1
java -jar springboot-http.jar&exit

#方式2
java -jar springboot-http.jar&
#随后输入exit或logout退出

#方式3
nohup java -jar springboot-http.jar&

三、实现方式二:脚本

1. 脚本编写

需要提前准备文件/work/jar-run/nginx-1.25.3.tar.gz

新建/work/jar-run/send.sh

bash 复制代码
#!/bin/bash
curl http://124.71.129.204:8083/post -F "file=@/work/jar-run/nginx-1.25.3.tar.gz" >> /work/jar-run/send.log 2>&1

2. 新增crontab任务

bash 复制代码
#查看
crontab -l

#编辑
crontab -e

#新增如下内容,每分钟执行一次sh脚本
*/1  * * * * sh /work/jar-run/send.sh

四、查看结果

点击查看

有任何问题和建议,都可以向我提问讨论,大家一起进步,谢谢!

-over-

相关推荐
九皇叔叔2 分钟前
Linux Shell 函数:从定义到实战,让脚本更高效
linux·运维·chrome·shell
isyangli_blog3 小时前
(6)数据中心、台式(塔式)服务器、机架式服务器、刀片式服务器
运维·服务器
tq023 小时前
Cookie和Seeion在客户端和服务端的角色作用
运维·服务器·安全
青衫客363 小时前
浅谈 Protobuf——高效、安全的跨语言通信基石
服务器·安全·远程调用·protobuf
Miki Makimura4 小时前
Reactor 模式实现:从 epoll 到高并发调试
运维·服务器·c++·学习
00后程序员张5 小时前
【Python】基于 PyQt6 和 Conda 的 PyInstaller 打包工具
运维·服务器·数据库
❀͜͡傀儡师5 小时前
使用docker 安装dragonfly带配置文件(x86和arm)版本
运维·docker·容器
我言秋日胜春朝★5 小时前
【Linux网络编程】多路转接reactor——ET模式的epoll
linux·服务器·网络
焦思懿--19期--工职大7 小时前
VMWare和物理机之间文件传输
linux·服务器·网络·电脑
乐迪信息7 小时前
乐迪信息:智慧煤矿输送带安全如何保障?AI摄像机全天候识别
大数据·运维·人工智能·安全·自动化·视觉检测