服务器流量收发测试

文章目录

一、概述

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

相关推荐
国际云,接待3 分钟前
华为云 ECS 怎么选规格:从用户地域、CPU/内存比、PPS 和云硬盘性能做购买前容量判断
服务器
国际云,接待7 分钟前
华为云 CBR 备份不是点一下就完事:用恢复演练验证 ECS 的 RPO、RTO 和跨区域容灾
服务器
学烹饪的小胡桃12 分钟前
资产设备管理系统 WGFIX 怎么设置https访问
linux·运维·服务器·网络·安全
张宇Joaquin27 分钟前
XX业务反序列化数据报错问题定位报告
服务器
IT摆渡者1 小时前
rocky Linux 根目录下扩展新硬盘空间
服务器
志栋智能1 小时前
超自动化巡检如何生成“有灵魂”的运维报告?
大数据·运维·人工智能·架构·自动化
凌风的跨境分享1 小时前
Temu运营避坑指南:制造地点信息填写合规要点与批量优化方法
运维·服务器·人工智能
Splashtop高性能远程控制软件1 小时前
微软 2026 年 9 月补丁星期二技术分析:974 个漏洞的分级修复优先级清单
运维·安全·自动化·远程工作·splashtop
Wang's Blog2 小时前
Java框架快速入门: Spring Security+OAuth2之单点登录(SSO)实战
服务器·spring·状态模式
Elastic 中国社区官方博客2 小时前
将 Vercel 数据导入 Elastic:无需安装任何东西的无服务器可观测性
大数据·运维·elasticsearch·搜索引擎·云原生·serverless·全文检索