728x90
반응형
🖤 글이 도움이 되었다면 유튜브 클릭 해주세요 🖤
A1 개발 서버와 A2 의 운영 서버가 같이 구동 될 때,
각각의 서버에서 업로드 받은 파일을 B1 에 업로드 시킨 후 B1 에서 주기적으로 프로세스를 돌리려고 한다.
sftp를 활용하기 위해서는 jsch 라이브러리가 필요.
🟡 maven
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.55</version>
</dependency>
🟡 프로세스 코드
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
// 다른서버 SSH 전송
@SuppressWarnings("finally")
public String sftpConnect(String fileName) {
String rfileName = "";
try {
//파일을 이동시키고자 하는 위치
String des = "/root/";
//파일이 존재 하는 위치
String src = "/home/tomcat/webapps/Anticall/upload/";
JSch jsch = new JSch();
//user, ip, port
Session session = jsch.getSession("user", "192.168.xxx.xxx", 22);
session.setConfig("StrictHostKeyChecking", "no");
//이동시킬 서버의 password
session.setPassword("password");
session.connect();
Channel channel = session.openChannel("sftp");
channel.connect();
ChannelSftp sftpChannel = (ChannelSftp) channel;
sftpChannel.cd(des);
File file = new File(src+fileName);
FileInputStream fis = new FileInputStream(file);
sftpChannel.put(fis, file.getName());
fis.close();
sftpChannel.disconnect();
channel.disconnect();
session.disconnect();
rfileName = file.getName();
} catch(Exception e) {
logger.error("Exception:",e);
} finally {
return rfileName;
}
}
▶ StrictHostKeyChecking
StrictHostKeyChecking no를 추가하면 접속하는 모든 호스트에 대해 Key 확인을 하지 않습니다.
▶ 선배님 ! SMTP 는 25 니까 25번 포트 이용하면 되나요 ?
이메일용 포트가 smtp라고해서 tcp 25번쓰고
실제로 putty랑 파일질라는 ssh방식이라서 22포트를 사용해 ㅎㅎ
mysql 포트는 일반적으로 3306쓰고 ㅎㅎ
728x90
반응형
'개발중 > Java' 카테고리의 다른 글
java 에서 현재 URL 가져오기 (0) | 2022.01.12 |
---|---|
JAVA 코드 저장시 컴파일 (compile) 처리 ❗❗❗ (2) | 2021.12.30 |
MultipartFile 파일 경로 가져오기 (0) | 2021.12.14 |
특정 List<vo> 의 seq 를 ',' 로 join (0) | 2021.09.14 |
JAVA MAP => JS MAP 사용 (0) | 2021.08.24 |