create tar file from stdin

僤鯓⒐⒋嵵緔 提交于 2019-12-01 08:32:16

问题


I want to backup mysql to a tape on-the-fly. Some like

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

I want the tape has content a tar file and this file has content "mysqldump.sql"

So a command "tar -t < /dev/tape" should output

mysqldump.sql

I don't want at first save mysqldump to file, because I have no space and IO resources. I want to do it on-the-fly.

I don't want "mysqldump > /dev/tape" because there is no metainfo and no way to know the tape has any content/


回答1:


User parkydr gave the better answer:

You can't create a tar file from stdin. Each file in the tar has a header including the length of the file, so tar has to know how much data there is before writing the header. – parkydr




回答2:


Just for the sake of future visitors: mysqldump produces the single file, that’s why the most appropriate way to store it on the tape would be probably:

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


来源:https://stackoverflow.com/questions/28238945/create-tar-file-from-stdin

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!