为什么我在尝试备份整个服务器时收到“tar:胆小者拒绝创建空存档”?

为什么我在尝试备份整个服务器时收到“tar:胆小者拒绝创建空存档”?

我是 Ubuntu 新手,正在处理服务器问题。我使用 Ubuntu 16.04 x64。我想备份我的整个系统,所以我按照这个视频操作https://www.youtube.com/watch?v=KTayZIou-1M

我输入这个命令

sudo tar -cvpzf mybackup.tar.gz --exclude=/backup/mybackup.tar.gz --one-file-system 

但是我得到了这个错误

tar: Cowardly refusing to create an empty archive

然后我意识到我忘记在“--one-file-system”后添加“/”,所以我添加了它。

sudo tar -cvpzf mybackup.tar.gz --exclude=/backup/mybackup.tar.gz --one-file-system/

并收到此错误

tar: unrecognized option '--one-file-system/'

提前致谢。

答案1

/在命令末尾添加一个空格。更改您的:

sudo tar -cvpzf mybackup.tar.gz --exclude=/backup/mybackup.tar.gz --one-file-system/

sudo tar -cvpzf mybackup.tar.gz --exclude=/backup/mybackup.tar.gz --one-file-system /

答案2

只是为了完整性:

的简单调用tar可能类似于:tar cf foo.tar file1 file2 file3。这告诉 tar 在名为 foo.tar 的文件中创建一个包含file1file2和 的档案file3。(请注意,使用 tar 时,-“命令”参数之前的 是可选的,因此您可以根据需要使用cf或)。-cf

消除一些其他(目前不太相关)标志,您的第一次调用本质上相当于tar cf foo.tar。像上面一样,这告诉它在名为的文件中创建一个档案foo.tar,但它确实不是告诉它要将哪些文件放入存档中。这就是错误消息告诉您的内容:由于您没有指定要存档的任何文件,因此创建不包含任何内容的存档是没有意义的。

当您添加/(并正确地将其与其他参数分开)时,它会告诉它您想要添加到档案中的文件,所以现在它可以创建一个实际包含某些内容的档案(因此,除非出现其他错误,否则它会这样做)。

答案3

因为你从未告诉它备份任何东西

你有

  • 命令tar
  • tar 文件名之前的一些选项: -cpzvf
  • tar 文件名:mybackup.tar.gz
  • tar 文件名后面的一些选项:--exclude=/backup/mybackup.tar.gz --one-file-system

进而纳达。您没有指定要备份的目录。 这是一个必需的参数,正如您可能猜到的那样

然后你意识到,你添加了/,但认为它是一个选项的修改,而不是它自己的一个参数。

/一个目录。它是根目录。在这种情况下,它的意思是“备份整个文件系统”。

正如 Peter 所讨论的,tar这不是备份启动卷的最佳方式。尤其是,如果磁盘发生故障,将 tarball 留在启动卷上对您没有任何帮助。

相关内容