从stdin创建tar文件

时间:2015-01-30 15:18:11

标签: pipe tar

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

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

我希望磁带的内容是tar文件,此文件包含内容" mysqldump.sql"

所以命令" tar -t<的/ dev /胶带"应输出

mysqldump.sql

我一开始并不想将mysqldump保存到文件中,因为我没有空间和IO资源。我想在飞行中做到这一点。

我不想要" mysqldump>的/ dev /胶带"因为没有metainfo而且没办法知道磁带有任何内容/

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

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

mysqldump| bzip2 - > mysqldump-`date +"%y-%b-%d"`.bz2