【发布时间】:2023-04-01 19:15:02
【问题描述】:
我想将 mysql 即时备份到磁带上。有些人喜欢
mysqldump|tar --filename=mysqlbackup.sql > /dev/tape
我希望磁带有一个 tar 文件的内容,并且这个文件有内容“mysqldump.sql”
所以应该输出一个命令“tar -t
mysqldump.sql
我一开始不想将mysqldump保存到文件,因为我没有空间和IO资源。我想即时进行。
我不想要“mysqldump > /dev/tape”,因为没有元信息,也无法知道磁带有任何内容/
【问题讨论】:
-
如果 /dev/tape 是 一个包含 sqldump 的 tar 文件,你怎么知道它有任何内容(因为你不能知道它是否只有 sqldump)?
-
/dev/tape 不是 tar 文件。它是磁带(磁膜)硬件设备
-
当然,但如果您希望
tar -t < /dev/tape工作,它的内容必须是 tar 文件的内容。 -
是的。对于一堆文件很容易完成: tar -c /home > /dev/tape 现在tape 包含了tar 文件,它可以通过tar -t 列出。我的问题是如何使用标准输入
-
您无法从标准输入创建 tar 文件。 tar 中的每个文件都有一个包含文件长度的 header,因此 tar 在写入 header 之前必须知道有多少数据。