美文网首页linux学习我用 Linux程序员
Ubuntu 16.04 备份与恢复记录

Ubuntu 16.04 备份与恢复记录

作者: CavalryLin | 来源:发表于2017-01-25 17:46 被阅读785次

    过去用Ubuntu系统没有备份的习惯, 也没出什么问题。但是前几日不知怎么搞的, 开不了机了, 由于没有备份,无奈只能重装系统。遂今日把备份过程记录一下, 以便日后查阅。

    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 /
    
    ##打包
    tar -cvpj -f /home/ubuntu_`date +%Y%m%d_%H`.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/ubuntu_`date +%Y%m%d_%H`.tar.bz2 /
    
    

    解释一下这个命令:
    tar : 这不用多说
    -cvpj -f: 一些参数
    /home/ubuntu_\date +%Y%m%d_%H`.tar.bz2:压缩后的文件名--exclude: 一些忽略文件/` : 一定不要忘记最后的 / , 代表被压缩的目录

    3.打包过程中会遇到如下错误或警告信息

    • tar: Exiting with failure status due to previous errors
      这个问题其实不是真正的错误信息, 真正的错误信息混杂在标准输出(stout)中, 重新执行命令并把v参数去掉即可看到真正问题所在。

    • tar: Removing leading ’/‘ from member namestar: Removing leading ’/‘ from hard link targets
      这个问题其实不影响程序的执行,产生的原因是tar在压缩的过程中自动帮我们去掉了路径前的“/”,也就是tar压缩后的包是按照相对路径压缩的。 当我们恢复时, 就需要通过 -C 参数手动指定解压到 “/” 目录, 如:tar xvpfj ubuntu_20170120_11.tar.bz2 -C /
      可以使用-P参数来指定按照绝对路径打包:

    tar -cpj -f /home/ubuntu_`date +%Y%m%d_%H`.tar.bz2 --exclude=/proc [...省略...] --exclude=/home/ubuntu_`date +%Y%m%d_%H`.tar.bz2 -P /
    

    这样解压的时候就不需要使用 -C 来指定解压到哪个目录:tar xvpfj ubuntu_20170120_11.tar.bz2

    • tar: /dev/shm: file changed as we read ittar: /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

    • 小结
      最后总结一下就是:压缩过程中碰到的这几个问题都不是问题。
      我刚装的Ubuntu 16.04 64bit, 经bzip2压缩后约为2.4G

    4.恢复

    tar xvpfj ubuntu_20170120_11.tar.bz2 -C /

    5.tar的增量备份

    参考这个博客, 楼主暂时还没用到增量备份, 此处留备后用.
    http://lesca.me/archives/how-to-incrementally-backup-linux-with-gnu-tar.html

    相关文章

      网友评论

        本文标题:Ubuntu 16.04 备份与恢复记录

        本文链接:https://www.haomeiwen.com/subject/foewbttx.html