实时监控文件夹,把最近一分钟修改的文件上传到服务器
package liu.cn.ixj;
import com.trilead.ssh2.Connection;
import com.trilead.ssh2.SCPClient;
import com.trilead.ssh2.Session;
import com.trilead.ssh2.StreamGobbler;
import java.io.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
public class Main {
public static void main(String[] args) throws IOException, InterruptedException {
ScheduledThreadPoolExecutor scheduledThreadPoolExecutors = new ScheduledThreadPoolExecutor(10);
scheduledThreadPoolExecutors.scheduleWithFixedDelay(()->{
File[] files = new File("C:\\Users\\pc\\Downloads\\").listFiles();
for (File file:files){
if (file.getName().contains("fast")){
long l = file.lastModified();
long time = new Date().getTime();
if (time-l<60000){
try {
upload(file.getAbsolutePath(), file.getName());
System.out.println(file.getName() + "操作成功>>>>>>>>>>>>>>>>>>>>>>>>>");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}, 0,60, TimeUnit.SECONDS);
}
private static void upload(String s, String fileName) throws IOException {
Connection con = new Connection("xxx.xx.xx.xxx", 22);
con.connect();
con.authenticateWithPassword("root", "xxxxxxxxxx");
SCPClient scpClient = con.createSCPClient();
scpClient.put(s,"/xxxx/xxxx/xxxx/");
List<String> strings = new ArrayList<>();
strings.add("unzip -od /xxxx/xxxx/xxxx /xxxx/xxxx/xxxx" + fileName);
strings.add("rm /xxxx/xxxx/xxxx" + fileName);
for (String execCommand:strings) {
Session session = con.openSession();
session.execCommand(execCommand);
InputStream stdout = new StreamGobbler(session.getStdout());
BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
while (true)
{
String line = br.readLine();
if (line == null)
break;
System.out.println(line);
}
session.close();
}
con.close();
}
}
2021-01-28