从stdin创建tar文件

问题描述 投票:2回答:2

我想在运行中将mysql备份到磁带上。有些人喜欢

mysqldump|tar --filename=mysqlbackup.sql > /dev/tape

我想磁带有内容tar文件,这个文件有内容“mysqldump.sql”

因此应输出命令“tar -t </ dev / tape”

mysqldump.sql

我不想先将mysqldump保存到文件中,因为我没有空间和IO资源。我想在飞行中做。

我不想要“mysqldump> / dev / tape”,因为没有metainfo也没办法知道磁带有任何内容/

pipe tar
2个回答
3
投票

用户parkydr给出了更好的答案:

您无法从stdin创建tar文件。 tar中的每个文件都有一个包含文件长度的标题,因此tar必须知道在编写标题之前有多少数据。 - parkydr


1
投票

仅仅为了未来的访问者:mysqldump生成单个文件,这就是为什么将它存储在磁带上的最合适的方式可能是:

mysqldump| bzip2 - > mysqldump-`date +"%y-%b-%d"`.bz2
© www.soinside.com 2019 - 2024. All rights reserved.