Category: Linux

  • tar 현재 날짜 포함

    tar로 파일을 생성할 때 현재 날짜를 포함한 파일 이름이 필요할 경우가 있다. 예전에는 shell script에서 현재 날짜를 변수로 생성하여 했었다. 찾아보니 바로 만들 수 있는 방법이 있었다.

    tar --exclude /home/byun1114/R/x86_64-pc-linux-gnu-library -vcf /home/byun1114/truenas/WORK/Z_BACKUP/R/R-`date +%F`.tar /home/byun1114/R
  • rutorrent 도커에서 사용

    여러가지 이유에 의해서 도커에서 rutorrent를 이용하기로 했다. 그런데 도커에서 설치하다 보니 이전보다 조금 바뀐 부분이 있고 그래서 다시 작성하여 본다.

    Ubuntu를 기반으로 한 도커 이미지를 하나 만든다. ruTorrent는 웹기반이므로 80포트를 연결시켜 준다. 다운받은 파일은 쉽게 접근 가능해야 하므로 볼륨도 연결해 준다.

    sudo docker run -it -p 80:80 -v /home/byun1114/Downloads:/tmp --name torrent ubuntu

    패키지를 설치하여 준다. SCGI와 관련된 패키지가 버젼 관리가 안되는지 이것을 설치하여 주면 일단 동작은 했다. wget과 nano 도 설치한다.

    # apt install apache2 php php-fpm php-cgi libhttp-request-ascgi-perl wget nano

    ruTorrent 파일을 /var/www/blog 폴더에 풀어주고, html 폴더 권한을 편하게 777로 둔다.

    /root/.rtorrent.rc 파일을 생성한다. 인터넷에 있는 것 중에서 하나를 선택했다.

    아파치를 실행시킨 다음, rtorrent를 실행한다.

    # service apache2 start
    # rtorrent
  • nginx / reverse proxy / Webdav

    조금 헤매기는 했지만, 내가 구현하고자 하는 부분은 구현할 수 있겠다. 오늘은 파일 전송과 관련된 WebDav이다.

    OCR 과 관련되어서 내가 구현하고자 하는 부분은 다음과 같다.

    • PACS로 등록이 되면 센터 DICOM 서버로 전송
      이 부분은 PACS 업체에 문의하였을때 가능하다고 한다. 다만, 이런 부분이 많아지면 기능에 문제가 가는 것은 맞으니까 정말 협의를 해야만 해주겠다고 한다.
    • 센터 DICOM 서버에서 분석 서버로 일정 시간마다 파일 전송
      센터 DICOM 서버에 장기간 파일을 보관할 생각 같은 것은 없다. 최근의 검사 파일만 있다면, 목록을 뽑아서 서버로 파일을 보내는 것은 쉬울 것이라고 생각한다. 내 프로젝트에서는 서버의 front는 도커로 https 443포트만 이용하고 nginx를 reverse proxy로 이용하여 각각의 도커 이미지로 분배한다.
    • DB에 put이나 patch하는 건 어렵지 않게 했다.
    • 파일 전송을 WebDAV을 이용하기로 했고, 이를 위해서 nginx 컴파일 할 때에 옵션을 지정했다.
    • WebDAV으로 proxy_pass를 이용할 때의 설정은 다음과 같다. ‘/’의 유무에 따라서 파일이 전송이 안되거나 파일명이 제대로 전송이 안되는 문제가 생겼다.
    • 나의 경우에는 파일만 전송이 되면 되기 때문에 다른 옵션은 상관이 없다. 아직까지는.. webdav.private는 도커 네트워크 브리지 private를 지정했기 때문이다. 마지막 ‘/’이 들어가니 깔끔하게 동작했다.
    location /webdav {
        proxy_pass http://webdav.private/;
        }
  • NGINX SSL 설치

    요즘 같은 험한 세상에서는 최소한 HTTPS를 이용하지 않고서는 서비스를 제공할 수 없다. 워드프레스는 단독 운영일 경우 Let’s Encrypt 를 이용해서 손쉽게 인증서를 발급받고, 갱신할 수 있다. 그렇지 않은 경우 인증서를 직접 설치해 주어야 한다.

    오늘 실컷 삽질을 한 결과 신속한 업무 진행을 위하여 블로그는 분리 운영을 하는 것이 낳겠다는 생각이 들었다. 어쨋든 인증서를 설치하는 과정은 대략 다음과 같다.

    업무를 위한 학회에서 이용하고 있는 Sectigo 회사의 DV 인증서를 후이즈에서 신청하였다. 신청할 때 CSR 정보를 입력하고 비밀키인 key를 입력한다. 이것을 잘 기록해 두어야 한다. DV 인증서는 도메인 담당자의 승인이 필요하기 때문에 신청 시간과 발급 시간의 시간 차이가 좀 있다. 어딘가에 기록을 해두지 않으면 나중에 인증서 파일이 왔을 때 키가 기억이 나지 않아 재발급을 해야하는 사태가 생길 수도 있다.

    회사 와일드카드용 인증서를 이용할 수 없기 때문에, DV 인증서를 신청하였는데 발급 과정에 도메인 담당자의 승인이 필요하다. 승인 후 하루 정도 지나면 인증서 파일을 이메일로 받을 수 있다.

    NGINX의 경우 인증서 파일과 key 파일이 필요하다. key 파일은 인증서를 신청하는 과정에서 생성된 그 key 파일이다. 그리고 인증서 파일은 이메일로 받은 인증서 파일을 이용해서 직접 만들어 주어야 한다. 3개의 파일을 이용해서 만들어야 하며, 나는 key.pem으로 만들었다.

    $ cat domain_cert.pem ChainRA.crt RootCA.crt > key.pem

    이 파일은 그냥 이용할 수가 없는데, cat로 파일을 합치는 과정에서 분리가 잘 안되는 부분이 있기 때문이다. 인터넷에서도 이와 같은 사례가 꽤 있는 것을 볼 수 있는데, 아직까지 해결이 안된 것을 보면 먼가 근원적인 문제가 있는 것 같다. 🙂 2군데 정도 줄바꿈이 빠져 있는 부분을 수정해 주면 된다.

    nginx.conf 파일에서 HTTPS 인증과 관련된 부분을 수정한 다음 nginx -s reload 로 다시 설정 파일을 불러오거나 재시작하면 된다. 서비스 상태 변경하는 과정에서 key 파일을 만들때 입력한 그 key를 입력해 주어야 한다.