参考: http://nerotux.tuxfamily.org/index.php/Articles/TarCommand
备份系统
1. 进入root用户
sudo su
2. 进入根目录
cd /
3. 开始备份
tar cvpzf backup-`date '+%d-%B-%Y'`.tar.gz --exclude=/lost+found --exclude=/media --exclude=/mnt --exclude=/proc --exclude=/sys /
命令格式:
tar [选项] 压缩文档的路径及名称 欲备份目录
选项:
参考:Linux命令大全
cvpzf:
- -c或–create:建立新的备份文件;
- -v或–verbose:显示指令执行过程;
- -p或–same-permissions:用原来的文件权限还原文件;
- -z或–gzip或–ungzip:通过gzip指令处理备份文件;
- -f<备份文件>或–file=<备份文件>:指定备份文件;
- –exclude=<范本样式>:排除符合范本样式的文件。
这里对排除的文件作个说明: - /lost+found:系统发生错误时(比如非法关机),它提供了恢复丢失文件的一种方法。
- /media:多媒体挂载点,像u盘、移动硬盘、windons分区等都会自动挂载到这个目录下。
- /mnt:临时挂载点,你可以自己挂载一些文件系统到这里。
- /proc:一个虚拟文件系统,系统运行的每一个进程都会自动在这个目录下面创建一个进程目录。
完整版: - -A或–catenate:新增文件到以存在的备份文件;
- -B:设置区块大小;
- -c或–create:建立新的备份文件;
- -C <目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
- -d:记录文件的差别;
- -x或–extract或–get:从备份文件中还原文件;
- -t或–list:列出备份文件的内容;
- -z或–gzip或–ungzip:通过gzip指令处理备份文件;
- -Z或–compress或–uncompress:通过compress指令处理备份文件;
- -f<备份文件>或–file=<备份文件>:指定备份文件;
- -v或–verbose:显示指令执行过程;
- -r:添加文件到已经压缩的文件;
- -u:添加改变了和现有的文件到已经存在的压缩文件;
- -j:支持bzip2解压文件;
- -v:显示操作过程;
- -l:文件系统边界设置;
- -k:保留原有文件不覆盖;
- -m:保留文件不被覆盖;
- -w:确认压缩文件的正确性;
- -p或–same-permissions:用原来的文件权限还原文件;
- -P或–absolute-names:文件名使用绝对名称,不移除文件名称前的“/”号;
- -N <日期格式> 或 --newer=<日期时间>:只将较指定日期更新的文件保存到备份文件里;
- –exclude=<范本样式>:排除符合范本样式的文件。
压缩文档的路径及名称
backup-`date '+%d-%B-%Y'`.tar.gz
这里没有写路径就是保存在当前命令的目录/
。
压缩包名字中date '+%d-%B-%Y'
是当期的日期。像我这样写你得到的压缩文件的文件名为:
backup-29-二月-2020.tar.gz
这个尾缀.tar.gz
是指用tar
命令打包,压缩方法是”gzip“。
欲备份目录
上面的命令备份的文件是除了一些排除的文件以外的/
目录。
如果我们想单独备份/boot
或/home
时可以替换为这两个文件。如:
tar cvpzf ubuntu_home_backup-`date '+%d-%B-%Y'`.tar.gz /home
tar cvpzf ubuntu_home_backup-`date '+%d-%B-%Y'`.tar.gz /boot
如果你在安装Ubuntu时给home和boot划分了磁盘的话,建议单独备份/boot
和/home
。
Ps:由于备份是用root用户来进行的,产生的压缩包很可能普通用户无法操作(如移动和复制),可以用chmod
命令来更改压缩包的权限,或者是用在命令行里在root用户下执行对文件的操作。
Ps:关于备份后出现:
tar: Exiting with failure status due to previous errors
其实不用担心,既然是你root用户都无权访问的文件,那可能是一些本就无法备份的文件,忽略就可以。
恢复备份
这个在我有恢复经验后再写。