while 루프의 출력을 tar로 병합

while 루프의 출력을 tar로 병합

mysqldumps 모든 데이터베이스에 대한 스크립트를 생성하고, 각 데이터베이스에 대해 별도의 .sql 파일을 생성하고, 출력을 backup-DATE.tar.gz에 병합하려고 합니다.

.sql 백업을 생성할 수 있었지만 제한된 지식으로 인해 극복할 수 없는 마지막 장애물은 모든 .sql 파일을 backup-DATE.tar.gz에 병합하는 방법입니다.

이것이 내가 지금까지 가지고 있는 것입니다:

mysql -N -u user -p'password' -e 'show databases' | while read dbname; do mysqldump --add-drop-table -u user -p'password' "$dbname" > /backuplocation/"$dbname".sql; done

그러면 모든 데이터베이스가 다음과 같은 백업 위치로 개별적으로 내보내집니다.

/backuplocation/
    /db1.sql
    /db2.sql
    /db3.sql

이 전략을 사용하여 이 출력을 backup-DATE.tar.gz에 병합할 수 있습니까?

내 목표를 더 잘 설명하기 위해 편집되었습니다.

내 목표는 이 스크립트를 실행하여 다음과 같은 결과를 얻는 것입니다.

/backuplocation/
    /backup-DATE.tar.gz/
        /db1.sql
        /db2.sql
        /db3.sql

대신에:

/backuplocation/
    /db1.sql
    /db2.sql
    /db3.sql

답변1

일반 "backuplocation" 대신 backup$(date)를 추가하도록 스크립트를 수정할 수 있습니다(그리고 먼저 backuplocation이라는 폴더를 한 번만 생성합니다).

tar -czf backuplocation/backup-$(date).tar.gz backup$(date)
mv backup-$(date).tar.gz backuplocation/
rm -rf backup$(date)

관련 정보