기존에 쓴 것을 거의 베끼고, 새로운 내용만 살짝 추가해본다.
원본들은 다음과 같다.심화 설정(?)은 다음 글을 참고한다.
설치는 Sync 공식 문서를 참고하면 된다.그래도 여기에 간단히 다시 정리한다. 단, 이 글에서는 신규 설치를 기준으로 한다. (BTSync 에서 업그레이드하는 것도 별 다를 건 없다.)
저장소 추가
/etc/apt/sources.list.d/resilio-sync.list
를 만들고, 다음 내용을 추가한다.deb http://linux-packages.resilio.com/resilio-sync/deb resilio-sync non-free
만약 armhf 시스템이라면(라즈베리파이 등), 약간 다르게 넣어줘야 한다.
deb [arch=armhf] http://linux-packages.resilio.com/resilio-sync/deb resilio-sync non-free
저장소를 추가했으므로 공개키도 추가해야 한다.
$ wget -qO - https://linux-packages.resilio.com/resilio-sync/key.asc | sudo apt-key add -
설치
$ sudo apt update
$ sudo apt install resilio-sync
만약 armhf 시스템이라면,
$ sudo dpkg --add-architecture armhf
$ sudo apt update
$ sudo apt install resilio-sync
설치는 이것으로 끝.
Sync 를 개인 권한으로 실행하게 하기 위해서는 약간 수고를 해야 한다. 개인권한으로 하는 편이 좋을 것 같긴 한데.. 관리자권한과 개인권한, 모두 장단점이 있겠지만, 이 글에선 개인권한으로만 하려고 한다. 관리자 권한은 우분투/데비안 : Resilio-Sync 복잡 설정(다시~). 참고.
systemd 서비스 파일 생성/편집 - Systemd User 설정 사용
이 방법은 systemd 설정 파일을 개인 디렉토리(
~/.config/systemd/user
)에 만들어 사용한다. Resilio 에서 권하는 방법(홈페이지에 나와있는 내용)은 바로 아래에 나와있는데, 그대로 하면, Resilio-Sync 가 판올림되었을 때 원본 파일, 즉 /usr/lib/systemd/user/resilio-sync.service
가 초기화되어 버리기 때문에 재작업이 필요하다는 '귀찮음'이 있다.이런 단점을 보완하려면, 사용자 디렉토리에 서비스 파일을 만들고
systemctl --user
명령으로 실행시켜주는 게 좋다. 판올림이 되어도 전혀 상관없이 설정을 그대로 유지할 수 있다.이렇게 하려면 다음 작업이 필요하다.
$ mkdir -p ~/.config/systemd/user
$ cp /usr/lib/systemd/user/resilio-sync.service ~/.config/systemd/user/resilio-sync-user.service
~/.config 디렉토리에 systemd/user 디렉토리가 없을 경우, 위와 같이 먼저 만든다.
그리고 이 디렉토리에 원본 설정 파일을 복사한다. 파일명은 원하는대로 주면 되지만, 확장자는 service 라야만 한다.
복사한 뒤 이 파일을 열고,
WantedBy
항목을 default.target
로 바꿔준다. (원래는 multi-user.target 으로 되어 있다.)WantedBy=default.target
설정은 끝. 이 파일을 기준으로 서비스를 실행하면 된다.
$ systemctl --user enable resilio-sync-user.service
서비스 이름은, 위에서 지정해준 파일명과 동일하다. 따라서 파일명을 다르게 줬다면 그 파일명을 넣어주면 된다.
이 작업은
~/.config/systemd/user/default.target.wants/resilio-sync-user.service
라는 심볼릭링크를 생성하고, 사용자가 로그인 했을 때 서비스를 자동 실행되게 만들어준다.The Great Archlinux Document Team(^^)의 도움을 얻어 방법을 알아낼 수 있었다.
만약, Headless 서버에서 사용자 권한으로 Resilio-Sync 를 사용하고 싶다면, 현재 설정으로는 한가지 문제가 있다.
서버가 재부팅 되었을 경우, 반드시 사용자가 로그인을 해야 Resilio 서비스가 실행되기에, 이게 번거로울 수도 있다.
이걸 방지하기 위해선 다음 명령을 실행한다.
$ sudo loginctl enable-linger username
그리고, 서버의
~/.config/resilio-sync/config.json
파일을 열고, 다음 항목을 적절히 수정해줘야 한다."listen" : "서버IP:포트"
기본값은 "127.0.0.1:8888" 인데, 이래서는 외부에서 접근할 수가 없다. 서버의 IP 주소와 원하는 포트(기본값은 8888)를 넣어주고, 서비스를 재실행시켜주면 다른 기기에서도 접속할 수 있다.
**
아래에는 Resilio-Sync 에서 권장하는 방식을 옮겨 놓았다.
systemd 서비스 파일 편집 - 기존 방법(Resilio 설명서에 있는 그대로)/usr/lib/systemd/user/resilio-sync.service
파일을 열고, "WantedBy=multi-user.target" 를 주석처리하고 "WantedBy=default.target" 를 추가한다.** 꼭 필요한 건지는 모르겠지만..
위 파일에PIDFile=%h/.config/resilio-sync/sync.pid
라는 항목이 있다.
때에 따라서, systemctl status 로 확인해보면, 이 부분에서 오류가 나는 경우가 있다. 그렇다고 해서 작동에 문제가 있는 것 같지는 않지만, 차라리 이 부분을 주석처리해버리면, 적어도 오류 발생 가능성은 줄어든다.
(그로 인해 어떤 다른 오류가 발생할런지에 대해선.. 아는 바 없음)
systemd 자동 시동 설정 - 기존 방법(Resilio 설명서에 있는 그대로)$ systemctl --user enable resilio-sync
여기에 나오는 systemctl 은 모두 사용자 권한으로 실행한다. sudo systemctl 이 아니라는 뜻.
이렇게 하고 나서, 재부팅하면 Sync 가 자동으로 실행된다.
이 작업이 끝나면, ~/.config/systemd/user/default.target.wants/resilio-sync.service 라는 파일이 생성되는데, 이 파일은 /usr/lib/systemd/user/resilio-sync.service 의 심볼릭 링크이다.단!!! 주의할 점이 있다.만약 자동시동을 취소하고 싶다면, 다음 명령을 내리면 된다.
사용자 권한으로 실행되게끔 설정했기 때문에, 시스템이 재부팅되고 나서, 그 사용자 계정으로 반드시 로그인을 해야 Sync 가 실행된다. 데스크탑이라면 이것이 당연한 흐름(전원 넣고, 사용자로 로그인)이므로 별 이상할 것이 없지만, Headless 서버에서는 시스템 재부팅을 하고 나서 로그인을 하지 않을 경우도 있으므로, 이런 경우엔 반드시 로그인을 해줘야 Sync 가 시동이 된다는 점을 잊지 말 것.
** 이 글을 쓰고 한 참 뒤에 안 것인데, 로그인이 불필요한 Headless Server 에서도 개인 사용자용으로 Resilio-Sync 를 설치할 수 있는 듯 하다. 공식 문서에 해당 내용이 나와있다. (원래부터 있었는지, 후에 추가된 건지는 모르겠다.)sudo loginctl enable-linger username
$ systemctl --user disable resilio-sync
resilio-sync 가 판올림 되었을 경우
resilio-sync 를 PPA 를 통해 설치했을 때, Upgrade 가 되었다면,/usr/lib/systemd/user/resilio-sync.service
파일이 초기화되기 때문에, (아마도) resilio-sync 가 정지될 가능성이 높다.
따라서 위 작업을 다시 하고 재시작(또는 시스템 재부팅) 하면 된다.
** 다만, 이 작업은 개인 사용자용으로 sync 를 설정했을 때만 필요하다. 시스템 전역 설치했을 때는 판올림 되더라도 무리없이 잘 작동한다.
systemd 시작/정지/재시작 등등
다음 명령어로 해당 동작을 실행할 수 있다.
$ systemctl --user start/stop/restart/status resilio-sync-user.service
실 사용은 다음과 같다.
$ systemctl --user status resilio-sync-user.service
** 가끔, 이렇게
$ systemctl status resilio-sync
사용해서, 서비스가 실행되고 있지 않다는 결과를 보고 엉뚱한 삽질을 하곤 했다. --user 를 꼭 붙여야 하며, resilio-sync-user.service 라고 정확하게 써줘야 한다.기본 설정은 여기서 끝. 다음 글에선 본격 설정(?)에 돌입해보기로 한다.
사용자 설정이 아닌 '서버'로 사용하려면 다음 글 하단을 참고하라.
덧글