tar命令备份Ubuntu系统及恢复
一、备份
- 切换root用户
sudo su
- 退回根目录
cd /
- 备份命令
tar cvpzf /path/to/backup.tar.gz --exclude=/proc --exclude=/lost+found --exclude=/backup.tar.gz --exclude=/mnt --exclude=/sys --exclude=/media /
/path/to/backup.tar.gz为生成压缩包目录
- cvpzf:
c:创建新的归档文件。
v:详细模式,显示处理的文件。
p:保留文件的权限信息。
z:通过 gzip 压缩归档文件。
f:指定归档文件名。
–exclude 选项用于排除指定的目录或文件,在压缩时不包含它们。
最后的 / 表示要开始压缩的根目录(整个系统根目录)。
二、恢复(重装)
- 恢复前删除根目录下所有文件
rm -rf /tmp/root/*
- 切换root用户
sudo su
- 退回根目录
cd /
- 恢复命令
tar xvpzf /path/to/backup.tar.gz -C /
- 解释:
x:表示解压操作。
v:详细模式,显示解压过程中的文件信息。
p:保留文件的权限信息。
z:表示解压 gzip 压缩的文件。
f:指定要解压的归档文件名。
-C /:指定解压的目标目录为根目录 /。这将把备份的文件恢复到它们原来的位置。
三、手动恢复备份目录
mkdir proc lost+found media mnt sys
关于是否需要清除文件以及是否直接覆盖
- 是否清除文件:
----- 一般情况下,如果目标位置原来没有相关文件,那么直接解压即可,不需要提前清除文件。但如果目标位置存在与要恢复的文件同名的文件,且你确定这些旧文件不再需要,那么可以考虑提前清除,以避免混淆。不过要谨慎操作,防止误删有用文件。 - 是否直接覆盖:
----- 解压时,如果目标位置已有同名文件,tar 命令默认会直接覆盖。在覆盖前,tar 会提示是否替换,你可以根据实际情况选择。如果不想覆盖已有的文件,可以使用 tar 命令的 --keep-old-files 选项,这样在解压时遇到同名文件,tar 会保留旧文件,不会进行覆盖操作。 - 使用以下命令解压时就不会覆盖旧文件:
tar xvpzf /path/to/backup.tar.gz -C / --keep-old-files