백업에서 디렉터리를 생략하는 방법

백업에서 디렉터리를 생략하는 방법

나에게 적합하도록 백업 스크립트를 편집하려고 합니다. 내 문제는 백업할 디렉터리 경로를 설정하면 백업이 포함된 디렉터리도 백업된다는 것입니다. :)

스크립트:https://github.com/todiadiyatmo/bash-backup-rotation-script/blob/master/backup_rotation.sh

현재 나에게 할당된 공간의 대부분은 다음 위치에 있습니다./home

root@encorepvp:/home/jo# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        20G  2.3G   16G  13% /
devtmpfs         32G  4.0K   32G   1% /dev
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            6.3G  1.5M  6.3G   1% /run
none            5.0M     0  5.0M   0% /run/lock
none             32G  4.0K   32G   1% /run/shm
none            100M     0  100M   0% /run/user
/dev/md3        1.8T   29G  1.7T   2% /home

/home라는 디렉터리가 있어서 backups백업에서 해당 디렉터리를 생략하고 싶습니다. -x /home/backups 어떻게 해야 합니까?

답변1

/home라는 디렉토리가 있으므로 backupssay 를 사용하여 백업에서 해당 디렉토리를 생략하고 싶습니다 -x /home/backups. 이것을 어떻게 구현합니까?

이를 구현하려면 다음을 살펴봐야 합니다.스크립트그리고 디렉터리 백업을 수행하기 위한 관련 줄을 찾으세요.

# Compress tables and files
cd $TARGET_DIR
tar -czf $BACKUP_DIR/backup.incoming/$backup_filename -C $BACKUP_DIR/backup.incoming/ mysql_dump.sql $TARGET_DIR

당신은 그것이 사용된다는 것을 알게 될 것입니다 tar. 그래서 당신은 찾을 것입니다타르 맨 페이지그리고 결정한다들어오지 못하게 하다옵션은 --exclude과 가 아닙니다 x. 그런 다음 변경 사항을 파일에 적용하고 테스트할 수 있습니다.

스크립트의 맥락에서 고정 디렉터리를 제외하는 대신 백업 디렉터리를 선언하는 변수를 사용하는 것이 합리적입니다 $BACKUP_DIR.

tar -czf $BACKUP_DIR/backup.incoming/$backup_filename -C $BACKUP_DIR/backup.incoming/ --exclude $BACKUP_DIR mysql_dump.sql $TARGET_DIR

스크립트를 편집할 때 공백과 기타 이상한 내용이 포함된 디렉토리 이름을 처리할 수 있도록 대부분의 스크립트를 (단순히) 수정하는 것이 더 나을 것입니다. 대부분의 변수를 참조하여 이를 수행할 수 있습니다. 예를 들어 이 tar섹션은 다음과 같습니다.

# Compress tables and files
cd "$TARGET_DIR"
tar -czf "$BACKUP_DIR/backup.incoming/$backup_filename" -C "$BACKUP_DIR/backup.incoming/" --exclude "$BACKUP_DIR" mysql_dump.sql "$TARGET_DIR"

관련 정보