나에게 적합하도록 백업 스크립트를 편집하려고 합니다. 내 문제는 백업할 디렉터리 경로를 설정하면 백업이 포함된 디렉터리도 백업된다는 것입니다. :)
스크립트: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
라는 디렉토리가 있으므로backups
say 를 사용하여 백업에서 해당 디렉토리를 생략하고 싶습니다-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"