반응형
현재 docker-compose로 GitLab이 실행중에 있다고 보자..
기존에 정의된 docker-compose에 아래의 빨간 부분을 추가한다.
그리고 컨테이너 재실행
docker-compose up -d
매일매일 cron job으로 해당 스크립트를 실행되도록 쉘 스크립트를 작성한다.
"~/scripts" 경로에 gitlab-backup.sh를 생성하고 다음과 같이 작성한다.
#!/bin/sh
BACKUP_DIR='/mnt/bds/gitlab_home/backups'
BACKUP_LIFETIME=30 #30일 저장
TZ=Asia/Seoul
docker exec gitlab gitlab-backup create CRON=1
BACKUP_FILE=`ls -t $BACKUP_DIR | head -n 1`
echo "gitlab-backup created::: $BACKUP_DIR/$BACKUP_FILE "
#30일 이전 파일 제거
BACKUP_REMOVE_FILES=`find $BACKUP_DIR -name "*_gitlab_backup.tar" -mtime +$BACKUP_LIFETIME -type f`
if [ -n "$BACKUP_REMOVE_FILES" ]; then
echo "gitlab-backup remove old backups::: $BACKUP_REMOVE_FILES"
rm -rf $BACKUP_REMOVE_FILES
fi
echo "gitlab-backup done."
그리고 crontab에 스케출을 등록
crontab -e
0 4 * * * /home/duser/scripts/gitlab-backup.sh > /home/duser/scripts/gitlab-backup.sh.log 2>&1
매일 새벽 4시에 gitlab-backup.sh를 실행하고 해당 스크립트 실행 로그를 저장한다.
아래의 캡처와 같이 /mnt/bds/gitlab_home/backups 경로에 백업 파일생성
crontab에 스케줄에 따라 매일매일 새벽4시에 실행되며
쉘 스크립트에 조건문으로 생성된지 30일이 지나면 제거된다.
반응형
'devops' 카테고리의 다른 글
네이버클라우드 서버에 스토리지 추가 및 초기화 작업 (0) | 2023.07.06 |
---|---|
GitLab-Runner Helm Installation (0) | 2023.07.06 |
docker-compose Gitlab Installation (0) | 2023.07.06 |
GitLab Pipeline Editor - safe.directory Error (0) | 2023.07.06 |
Helmchart로 Rancher 설치하기 (0) | 2023.07.06 |