我是 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 的文件中创建一个包含file1
、file2
和 的档案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 留在启动卷上对您没有任何帮助。