프로그램 공유/응용 프로그램

CLI 파일 복사 프로그램

봄 비 2024. 9. 2. 00:59

요즘에는 CI/CD를 도와주는 도구들이 많아져서 수정된 파일을 반영하기가 매우 쉽습니다.

하지만 보안 등의 이유로 CI/CD 환경을 구축하기 어려운 경우도 여전히 많은 것 같습니다.

 

저의 경우에도 정부표준프레임워크를 사용하며 굉장히 폐쇄된 환경에서 개발을 하고있는데요,

파일을 하나씩 복사하고 수동으로 백업 해야하는 불편함을 겪고 있었습니다.

특히 서버가 여러개라 반영을 여러번 해야하니 너무나도 비효율적이었습니다.

 

이런 불편함을 조금이나마 해결해보기 위해 파일의 복사와 백업을 도와주는 프로그램을 만들게 되어 공유드립니다.

 

 

프로그램의 장점은 아래와 같습니다.

- 여러개의 파일을 한번에 복사할 수 있습니다.
- 기존에 이미 파일이 존재한다면 자동으로 백업을 해줍니다.
- 기존의 백업파일을 정리하는 기능이 있습니다.
- 파일 복사 후 반영이 잘 되었는지 검증합니다.
- 네트워크 통신이 되지 않는 환경에서 사용할 수 있습니다.
- CLI로 작동하여 GUI를 사용하지 못하는 환경에서 사용할 수 있습니다.
- window와 linux환경에서 모두 작동합니다.

 

 

 

* java 1.7 version 이상을 요구합니다.

아무래도 저 처럼 정부사업쪽 개발을 하는 분들이 사용하게 될 것 같아 JVM으로 작동하도록 만들었습니다.

 

 

+ 해당 프로그램을 사용하기 쉽도록 아래 프로그램을 추가 제작 하였습니다.

아래 프로그램을 통해 별도의 설정 없이 간편하게 해당 프로그램을 사용할 수 있습니다.

https://bom-b.tistory.com/45

 

수정한 파일 반영 프로그램: 반영파일 생성 도우미

CI/CD를 구축하기 어려운 환경에서 수정한 파일의 추출 및 반영을 도와주는 프로그램입니다. 해당 프로그램은 아래와 같은 환경일 경우 유용하게 사용할 수 있습니다.- 운영서버에 자동으로 버

bom-b.tistory.com

 


 

https://github.com/bom-b/filecopy_util

 

GitHub - bom-b/filecopy_util

Contribute to bom-b/filecopy_util development by creating an account on GitHub.

github.com

 

위 github링크를 통해 프로그램을 받을 수 있으며 소스코드도 확인할 수 있습니다.

 

 

 


사용법

 

 

사용방법은 아래와 같습니다.

윈도우 환경에서 작업한 파일을 리눅스 환경의 서버에 반영하는 예시입니다.

 

 

1. FileCopyUtil.zip을 다운로드 받습니다.

 

 

 

 

 

 

2. 압축을 해제하고 SourceFile폴더에 반영할 파일들을 옮깁니다.

 

 

 

 

 

3. Config.txt 파일을 작성합니다.

 

설정 방법에 대한 자세한 설명은 더보기를 눌러 참고해주세요.

더보기
source_file_search_mode : Source 파일을 탐색하는 방법을 정의합니다.
    1. autoSearch : SourceFile 폴더 안의 모든 파일을 자동으로 탐색합니다. target_path_search_mode가 setRootPath일 때 유용합니다.
    2. manualSearch : SourcePath.txt에 적힌 경로만을 탐색합니다. target_path_search_mode가 manualPath일 때 유용합니다. 또한 SourceFile 폴더 안의 모든 파일을 반영하는게 아닌 경우에도 사용할 수 있습니다. 


target_path_search_mode : Target경로를 설정하는 방법을 정의합니다.
    1. setRootPath : Target의 프로젝트 root경로만 설정하여 파일을 복사합니다. 소스파일의 경로와 최종적으로 반영될 경로가 동일한 경우에 root경로만 설정하여 손쉽게 복사할 수 있습니다. 보통의 경우에는 이 옵션을 사용할 것 같습니다.
    2. manualPath : Target 경로를 모두 수동으로 지정합니다. 간혹 작업환경과 운영환경의 파일경로가 다를 수 있기 때문에 만든 옵션입니다.


backup_mode : Target의 원본파일이 덮어쓰기 되기전 파일을 백업하는 방법을 정의합니다.
    1. dateSuffix1 : 원본파일에 현재날짜(_yyyyMMdd형식)를 뒤에 붙여 백업파일 생성합니다. 기존 백업파일은 지우지 않습니다.
    2. dateSuffix2 : dateSuffix1과 동일하게 작동하고 _yyyyMMdd형식의 기존 백업파일들을 모두 지웁니다.
    3. backupToFolder : 원본파일을 별도의 백업폴더에 복사합니다. (run.sh가 위치하는 경로에 백업폴더가 생성됨)
    4. noBackup : 백업하지 않습니다.

 

 

 

 

4. source_file_search_mode를 manualSearch 로 설정했을 경우에 SourcePath.txt에 반영할 파일 리스트를 작성합니다.

 

SourceFile폴더안의 경로와 동일하게 작성해야 하며, SourceFile/ 경로는 생략합니다.

경로 구분자는 \이나 / 중 어느것을 사용해도 상관없습니다. 

 

 

 

 

 

5. TargetPath.txt를 작성합니다.

 

- target_path_search_mode를 setRootPath로 설정한 경우에는 프로젝트의 루트경로를 절대경로로 작성하면 됩니다.

 

 

 

-  target_path_search_mode를 manualPath로 설정한 경우에는 SourcePath.txt에 대응되도록 모든 경로를 순서대로 작성해야합니다. 역시 절대경로로 작성하며 파일명은 생략합니다.

 

 

 

 

 

6. 준비한 파일들이 들어있는 폴더를 반영할 컴퓨터로 옮기고 운영체제에 따라 실행파일을 실행합니다.

 

linux : run.sh

window : run.bat

linux환경에서 실행할 경우 실행권한을 부여해야 합니다.

 

 

 

 

 

7. 설정사항이 맞는지 확인 후 실행 하여 결과를 확인합니다.

 

백업한 파일의 개수, 파일 반영 결과를 확인하고 종료합니다.

 

 


 

 

부족할 수 있는 프로그램이지만 누군가에겐 도움이 되지 않을까 하는 마음에 공유를 드렸는데요,

혹시나 사용을 하면서 불편한 점이나 원하는 기능이 있으시다면 댓글로 남겨주시면 정말 감사하겠습니다.