将多个文件导入一个tar gz

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

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

我可以将所有文件保存在临时目录中,然后将它们放到存档中,但是, 如何跳过这个不必要的临时目录部分呢? 我试图了解命名pipe道,认为他们可能是我需要的,但是,还没有真正理解他们。

您可以使用-r标志来tar来将文件追加到现有的归档文件。 由于追加到空的或不存在的归档是合法的,所以可以修改循环指令

 $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索引中有一个用于提取的文件名(如果您通过pipe道将所有文件发送给它),但是您不需要把它们一起收集起来,然后把它们都烧焦。