xoid
xoid

Reputation: 1134

create tar file from stdin

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/

Upvotes: 3

Views: 5247

Answers (2)

Aleksei Matiushkin
Aleksei Matiushkin

Reputation: 121000

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

Upvotes: 2

xoid
xoid

Reputation: 1134

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

Upvotes: 8

Related Questions