리모트 머신 A, 리모트 머신 B가 있음 OS agnostic한게 최종 목적이지만 현재는 둘 다 Linux라 상정.
여기에 로컬 머신 C가 있음 C에서는 B에만 SSH로 접근할 수 있고 A에는 SSH 접속이 불가능
여기서 제한 사항은 A와 B에 어떠한 클라이언트도 깔 수 없음. Linux의 기본 라이브러리로만 진행해야함. 그리고 각각의 파일이 크기가 큼. (GiB 단위)
이런 상황에서 내가 구현해야 하는 기능은 A의 파일 시스템을 주기적으로 모니터링해서 새로운 파일이 생겼을 경우 B로 transfer하는 것임. (SFTP 사용)
모든 data flow는 C에서 관리해야 하는게 관건.
1. A의 FS 모니터링 기능 구현을 어떻게 해야할지 감이 잘 오지않음.
지금 현재로는 쉘스크립트를 짜서 A의 특정 폴더 모니터링을 폴링하는 식으로 구현할 생각인데 가능할 것같음??
파일은 수십~수백 개 / day로 생각하고 있음.
2. C -> B -> A로 SSH 연결하는 것은 ssh multihop으로 연결할 생각 중이고 API도 열어야 해서 자바로 짜려고 하는데 더 좋은 툴같은게 있을지 궁금함.
3. 뭔가 지금 하는 일이 reinventing the wheel을 하는 중인 것같은 느낌인데 이게 프로덕션 수준으로서의 가치가 있을지 궁금함.
이런 기술적인 질문할 곳이 국내에 여기밖에 없어서 글남겨봄.
폴링도 괜찮은데 inotify라고 들어본거같음
sftp로 제한된게 아니면 rsync는 안됨?
rsync나 inotify 전부 다 리모트 머신에 깔아야 되는거라 안 되는걸로 상정하고 진행 중. 그래서 ssh, sftp로만 진행한다는 의미였음.
그래도 깔려있는지 확인은 해봐. 되면 개꿀일거 같은데
general purpose로 개발하는거라 어떤 특정 상황에 맞출 수가 없음 어디서든 사용 가능해야함..
ssh도 리눅스 내장은 아닐텐데... 그리고 inotify는 커널 내장일거임
ssh 라이브러리가 없는 머신도 존재함?? 그건 생각 못 했는데.. inotify는 깔아야 됐던걸로 기억하는데 다시 한번 찾아볼게 고마워
우분투도 ssh 접속하려면 openssh server 깔아야될걸?
ssh를 자바로 짠다는게 무슨 뜻임?
터널링만 하고 끝나는게 아니라 verification이나 flow 등도 관리해야 해서 프로그래밍 언어를 이용해서 관리한다는 의미였음 ssh connection은 Jsch 이용할 생각이었고
그렇군
rclone으로 sftp remote 두 개 만든 다음 rclone sync
오
이게 사실상 정답이네 깔 수만 있다면 진짜 고마워 뭔가 보이는구만