将多个文件合并到一个 tar gz 中

将多个文件合并到一个 tar gz 中

我想调用 mysqldump 来创建多个备份文件,然后将它们存档在一个 tar.gz 中。

我正在关注本教程中有关 mysqldump 的部分:http://dev.mensfeld.pl/2013/04/backup-mysql-dump-all-your-mysql-databases-in-separate-files/(最后,它循环调用每个数据库的 mysqldump 并每次创建一个文件)

我可以将所有文件保存在临时目录中,然后将它们放入档案中,但是,有没有什么方法可以跳过这个不必要的临时目录部分?我尝试了解命名管道,认为它们可能是我所需要的,但是,我并没有真正理解它们。

答案1

您可以使用-rtar 的标志将文件附加到现有存档。由于附加到空存档或不存在的存档是合法的,因此您可以将循环指令修改为类似

$MYSQLDUMP --force --opt --user=$MYSQL_USER -p$MYSQL_PASSWORD --databases $db > "$BACKUP_DIR/mysql/$db"
tar rvf /path/to/tar.file "$BACKUP_DIR/mysql/$db" && rm "$BACKUP_DIR/mysql/$db"

该文件必须是暂时存在,因为它需要在 tar 索引中有一个文件名以便进行提取(如果您通过管道将所有文件发送给它,请考虑如何提取它们) - 但您不需要将它们全部收集在一起然后将它们全部打包成 tar。

相关内容