본 서버는 A(가명)라는 서버이나 새로 계산서버 B(가명)라는 것을 사용할 때 서버 간 동기화 작업(B와 A의 데이터 일치)이 필요할 수 있는데요. 이를 위해 사용할 수 있는 프로그램 중 lsyncd라는 것이 있습니다.
본인이 직접 사용하면서 설정했던 방법을 정리합니다.
사실 설정은 간단한데, 위에 보이시는 것처럼 Target Server에서는 (1) rsync가 설치되어 있고, Source Server에는 (2) lsyncd가 설치되어 있는 상태에서 (3) ssh-key 생성 및 등록, (4) conf파일을 통해 실행시키면 됩니다.
보통 따로 설치하지 않아도 rsync는 Ubuntu에 설치되어 있습니다. 따라서 일반적으로는 2번부터 진행하시면 됩니다.
- 설치
1. Target Server에서 rsync 설치
sudo apt update
sudo apt install rsync
2. Source Server에서 lsyncd 설치
sudo apt update
sudo apt install lsyncd
3. ssh-key 생성 및 등록
https://linuxize.com/post/how-to-set-up-ssh-keys-on-ubuntu-1804/를 참고하세요.
4. lsyncd.conf 파일 생성, 설정 후 lsyncd 실행
vi등을 이용하여 아래와 같은 내용을 가지고 있는 lsyncd.conf 파일을 만듭니다.
settings {
logfile = "/data/username/lsyncd.log",
log = "all",
statusFile = "/data/username/lsyncd-status.log",
statusInterval = 20
}
sync {
default.rsyncssh,
source="/data/username/Workspace/Project1",
host="username@144.12.144.12",
targetdir="/data/username/backup/gcp_backup",
delete=false,
rsync = {
archive = true,
compress = false,
whole_file = false
},
ssh = {
port = 22
}
}
이후
lsyncd lsyncd.conf
하시면 lsyncd가 실행됩니다.
- 부가 설명
기본적으로 lsyncd manual(default.rsyncssh 섹션 참조)에서 제시해주는 config를 조금 수정해서 사용하였습니다.
Target Server의 ip가 "144.12.144.12", 사용하는 id가 username이라고 가정하였습니다.
기본 매뉴얼에서 2가지가 추가되었는데, delete = false 부분과 log = "all" 부분입니다. 이 부분은 개인적인 사항입니다.
허나 delete = false 같은 경우 Source에서 파일이 삭제된다고 해도 Target에서 지우지는 않게 하는 옵션입니다. 실수로 Source에서 삭제를 해도 Target에는 남아있으니 유용한 옵션이라고 생각됩니다. (제가 이 옵션을 활성화하지 않은 체 Source에서 삭제를 해서 데이터를 날려버린 건 안비밀.)
도움이 되셨다면 공감을, 질문이나 잘못된 점은 댓글 부탁드립니다.
'Coding > Handling Ubuntu' 카테고리의 다른 글
Linux 쓰다보니 유용했던 bashrc 설정들 (0) | 2022.10.13 |
---|---|
Jupyter Lab 설치 및 작업 환경 설정 방법 (feat. anaconda3) (0) | 2020.10.24 |
Ubuntu에 Anaconda 설치하기 (0) | 2020.07.08 |