1.清理缓存
# 清理旧版本的软件缓存
sudo apt-get autoclean
# 清理所有软件缓存
sudo apt-get clean
# 删除系统不再使用的孤立软件
sudo apt-get autoremove
2.使用tar备份
- 命令及参数解释
v: 显示详细的压缩信息
c:创建tar包
j:使用bzip2压缩格式 (压缩率略高,但是速度慢,后缀为:tar.bz2)
z:使用gzip压缩格式(压缩率略低,但是速度快,后缀为:tar.gz)
p:保留文件原始权限
f:生成的压缩文件的路径 - 要排除的文件
/proc
/lost+found
/sys
/cdrom
/mnt
/media
我把/home下cavalry(用户目录)之外的目录都排除了(根据自己情况选择 ,需要备份就不要排除)
排除打包文件自身 - 命令执行
#切换到root用户
sudo su
#进入到 / 目录
cd /
# 使用gzip压缩格式(压缩略低,但是速度快)
tar -vzcpf /home/backup.tar.gz --exclude=/proc --exclude=/lost+found --exclude=/sys --exclude=/cdrom --exclude=/mnt --exclude=/media --exclude=/home/ide/ --exclude=/home/java/ --exclude=/home/WORKING_DIRECTORY/ --exclude=/home/workspace/ --exclude=/home/aosp-latest.tar --exclude=/home/backup.tar.gz /
# 使用bzip2压缩格式(压缩略高,但是速度慢)
tar -vjcpf /home/backup.tar.bz2 --exclude=/proc --exclude=/lost+found --exclude=/sys --exclude=/cdrom --exclude=/mnt --exclude=/media --exclude=/home/ide/ --exclude=/home/java/ --exclude=/home/WORKING_DIRECTORY/ --exclude=/home/workspace/ --exclude=/home/aosp-latest.tar --exclude=/home/backup.tar.bz2 /
解释一下这个命令:
tar
3.打包过程中会遇到如下错误或警告信息
tar: Exiting with failure status due to previous errors
这个问题其实不是真正的错误信息, 真正的错误信息混杂在标准输出(stout)中, 重新执行命令并把v参数去掉即可看到真正问题所在。
tar: Removing leading ’/‘ from member names 或 tar: Removing leading ’/‘ from hard link targets
这个问题其实不影响程序的执行,产生的原因是tar在压缩的过程中自动帮我们去掉了路径前的“/”,也就是tar压缩后的包是按照相对路径压缩的。 当我们恢复时, 就需要通过 -C 参数手动指定解压到 “/” 目录, 如:tar xvpfj ubuntu_20170120_11.tar.bz2 -C /
可以使用-P参数来指定按照绝对路径打包:
tar: /dev/shm: file changed as we read it 或 tar: /run/udev/control: socket ignored
这个socket ignored产生的原因是压缩的过程中文件正在使用,无需理会,不影响压缩。
tar: /run/user/1000/gvfs: Cannot stat: Permission denied
这个问题不用理会,与虚拟文件系统有关,不影响压缩。 具体原因参见:
http://unix.stackexchange.com/questions/77453/why-cannot-find-read-run-user-1000-gvfs-even-though-it-is-running-as-root
4.恢复
tar xvpfj backup.tar.bz2 -C /
作者:CavalryLin
#切换到root用户
sudo su
#进入到 / 目录
cd /
# 使用bzip2压缩格式(压缩略高,但是速度慢)
tar -vjcpf /home/backup.tar.bz2 --exclude=/proc --exclude=/lost+found --exclude=/sys --exclude=/cdrom --exclude=/mnt --exclude=/media --exclude=/home/backup.tar.bz2 /
#还原
tar xvpfj /home/backup.tar.bz2 -C /