文章目录
- 一、概述
- 二、实现方式一:编码
-
- [1. 主要流程](#1. 主要流程)
- [2. 核心代码](#2. 核心代码)
- [3. 代码部署](#3. 代码部署)
- 三、实现方式二:脚本
-
- [1. 脚本编写](#1. 脚本编写)
- [2. 新增crontab任务](#2. 新增crontab任务)
- 四、查看结果
一、概述
我们在安装vnStat、wondershaper后,便想通过实际的数据收发来进行测试。
该怎么做呢?
二、实现方式一:编码
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-