服务器流量收发测试

文章目录

一、概述

我们在安装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-

相关推荐
天才奇男子7 小时前
HAProxy高级功能全解析
linux·运维·服务器·微服务·云原生
小李独爱秋7 小时前
“bootmgr is compressed”错误:根源、笔记本与台式机差异化解决方案深度指南
运维·stm32·单片机·嵌入式硬件·文件系统·电脑故障
❀͜͡傀儡师8 小时前
centos 7部署dns服务器
linux·服务器·centos·dns
Dying.Light8 小时前
Linux部署问题
linux·运维·服务器
S19018 小时前
Linux的常用指令
linux·运维·服务器
萤丰信息8 小时前
AI 筑基・生态共荣:智慧园区的价值重构与未来新途
大数据·运维·人工智能·科技·智慧城市·智慧园区
小义_9 小时前
【RH134知识点问答题】第7章 管理基本存储
linux·运维·服务器
运维小欣9 小时前
Agentic AI 与 Agentic Ops 驱动,智能运维迈向新高度
运维·人工智能
_运维那些事儿10 小时前
VM环境的CI/CD
linux·运维·网络·阿里云·ci/cd·docker·云计算
Trouvaille ~11 小时前
【Linux】UDP Socket编程实战(一):Echo Server从零到一
linux·运维·服务器·网络·c++·websocket·udp