리눅스 svnserve

From IT Wiki
Revision as of 23:43, 3 September 2022 by Dbeaver (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
  • 상위 문서: SVN

리눅스에서 svn 설치 후 svn 서버를 관리하기 위한 프로그램이자 명령어

옵션

svnserve --help로 확인할 수 있다.

$ svnserve --help
usage: svnserve [-d | -i | -t | -X] [options]

Valid options:
  -d [--daemon]            : daemon mode
  -i [--inetd]             : inetd mode
  -t [--tunnel]            : tunnel mode
  -X [--listen-once]       : listen-once mode (useful for debugging)
  -r [--root] ARG          : root of directory to serve
  -R [--read-only]         : force read only, overriding repository config file
  --config-file ARG        : read configuration from file ARG
  --listen-port ARG        : listen port
                             [mode: daemon, listen-once]
  --listen-host ARG        : listen hostname or IP address
                             [mode: daemon, listen-once]
  -6 [--prefer-ipv6]       : prefer IPv6 when resolving the listen hostname
                             [IPv4 is preferred by default. Using IPv4 and IPv6
                             at the same time is not supported in daemon mode.
                             Use inetd mode or tunnel mode if you need this.]
  -c [--compression] ARG   : compression level to use for network transmissions
                             [0 .. no compression, 5 .. default, 
                              9 .. maximum compression]
  -M [--memory-cache-size] ARG : size of the extra in-memory cache in MB used to
                             minimize redundant operations.
                             Default is 128 for threaded and 16 for non-
                             threaded mode.
                             [used for FSFS repositories only]
  --cache-txdeltas ARG     : enable or disable caching of deltas between older
                             revisions.
                             Default is no.
                             [used for FSFS repositories only]
  --cache-fulltexts ARG    : enable or disable caching of file contents
                             Default is yes.
                             [used for FSFS repositories only]
  -T [--threads]           : use threads instead of fork [mode: daemon]
  --foreground             : run in foreground (useful for debugging)
                             [mode: daemon]
  --log-file ARG           : svnserve log file
  --pid-file ARG           : write server process ID to file ARG
                             [mode: daemon, listen-once]
  --tunnel-user ARG        : tunnel username (default is current uid's name)
                             [mode: tunnel]
  -h [--help]              : display this help
  --version                : show program version information
  -q [--quiet]             : no progress (only errors) to stderr

시작 방법

가장 일반적인 사용법은 아래와 같다.

svnserve -d -r /home/svn --listen-port 포트
  • -d: --daemon: 데몬 방식으로 실행을 시킨다는 의미이다.
  • -r: --root [디렉터리]: 루트 디렉터리를 지정하는 옵션이다.
  • --listen-port: 실행 포트를 지정한다. 입력하지 않으면 기본 포트인 3690으로 실행된다. 보안을 위해 임의의 포트로 변경하는 것이 권장된다.

종료 방법

서비스에 등록하지 않는 이상 별도의 종료 옵션은 제공하지 않는다. 그냥 pspid를 확인하고 kill하는 방법 밖에 없다.

프로세스 확인

$ ps -ef | grep svn | grep -v grep
root     22456 22408  0 13:13 pts/3    00:00:00 su svn
svn      22463 22456  0 13:13 pts/3    00:00:00 bash
svn      23075     1  0 13:18 ?        00:00:00 svnserve -d -r /home/svn

svn과 관련된 여러 프로세스가 보여질 수 있는데, 본인이 실행시킨 svnserve 명령어를 찾아야 한다. 여기선 가장 아래에 있는 프로세스이다.

$ kill 23075

이후 다시 ps -ef 를 통해 정상 종료되었는지 확인한다.

서비스 등록

다른 서비스처럼 $service subversion start/stop 으로도 사용할 수 있다. 매번 루트 디렉터리를 설정하고 포트를 지정하고, 종료할 때도 pid를 확인하여 kill을 하는 것 보단 이 방법이 권장된다. 파일 하나만 수정하면 된다.

/etc/sysconfig/svnserve 파일 확인

$ cat /etc/sysconfig/svnserve
# OPTIONS is used to pass command-line arguments to svnserve.
# 
# Specify the repository location in -r parameter:
OPTIONS="-r /var/svn"

/etc/sysconfig/svnserve 파일 수정 vi 등을 이용해서 저 OPTION 부분을 우리의 루트 디렉터리 및 포트로 수정한다.

OPTIONS="--threads -r /home/svn --listen-port 612345"

이렇게만 해두면 service 명령어를 이용해 제어 가능해진다.