홈서버

[홈서버] 특정 파일 주기적 SCP 전송 (명령어 find, scp)

말춘이 2022. 1. 7. 15:54
반응형

  gitlab-ce 운영 중 데이터를 주기적으로 백업하였다.  이 백업파일을 물리적인 다른 서버에 전송하기 위해 scp 명령어를 사용하겠다.  당일 생성된 파일만 보내기 위해 find 명령어를 함께 사용하여 crontab 에 등록하는 것이 목표다.

  먼저 crontab에 등록할 명령어 부터 생성하겠다.  ssh 접근시 인증할 공개키를 대상서버에 미리 등록해 두었다.

 

$ find /var/opt/gitlab/backups -type f -name '*gitlab_backup.tar' -ctime 0 -exec scp {} xxxx@000.000.000.000:/var/opt/gitlab/backups/ \;

 

find 옵션명 설명
-type f 파일만 검색
-name '*gitlab_backup.tar' gitlab_backup.tar 끝나는 파일명
-ctime 0  당일 생성된 파일
-exec 수행 명령어 
한칸 띄우고 \; 필수 입력

 

  이제 해당 명령어를 크론탭에 등록한다.

$ crontab -e
0 0 * * * find /var/opt/gitlab/backups -type f -name '*gitlab_backup.tar' -ctime 0 -exec scp {} xxxx@000.000.000.000:/var/opt/gitlab/backups/ \;

 

  등록 후 크론탭 서비스 재시작.

 

$ /etc/init.d/cron restart

 

  find의 ctime 옵션으로 특정 날짜의 파일을 검색, 전송할 명령어를 생성하였다.

반응형