好久没有写博客了,最近有点忙........
废话不说,直接说所要实现的功能。
需要从linux服务器上读取文件夹,知道该文件夹有没有新的文件产生,后期还需要发送到其他平台上(发送其他平台就不说了)
思路:开始我想使用监听器呢,但是要求不能使用监听器,所以就放弃了, 我直接读取新产生的文件,使用linux脚本
依赖如下:
<!-- ganymed-ssh2-->
<dependency>
<groupId>ch.ethz.ganymed</groupId>
<artifactId>ganymed-ssh2</artifactId>
<version>build210</version>
</dependency>
/**
*
* @param record linux服务器的脚本
* host :服务器的地址
* port :端口号
* user :服务器的名称
* pswd :服务器的密码
* 我的脚本是这样的(cd /root/test;find . -cmin -5 -type f) 5分钟内的产生的文件
* @return
*/
private List<String> linuxUtils(String record) {
List<String> file = new ArrayList<>();
Connection conn = new Connection(host, port);//host:是服务器的地址
try {
// 启动连接
conn.connect();
conn.authenticateWithPassword(user, pswd);
Session session = conn.openSession();
session.getStdout();
session.execCommand(record);
InputStream stdout = new StreamGobbler(session.getStdout());
BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
while (true) {
String line = br.readLine();
if (line == null)
break;
file.add(line);
}
conn.close();
session.close();
} catch (IOException e) {
e.printStackTrace();
}
return file;
}