Linux下备份系统

“那我该用什么来备份我的系统呢?”不像Windows,Linux不限制根用户存取任何东西,因此,你完全可以把一个分区上每一个的文件放入一个TAR文件中。

  来实施这一方法,用这个成为根用户:

  sudo su

  接着去你的文件系统的根目录(在我们的例子中,我们使用它,不过你可以去你希望备份的任何地方,包括远程或可移动驱动器。)

  cd /

  然后,下面就是我用来备份我的系统的完整的命令:

  tar cvpzf backup.tgz / --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys

  接着,让我们稍微解释一下:

  * 很明显,'tar'部分就是我们将要使用的软件。

  * 'cvpfz'是我们给tar加的选项,像“创建一个压缩文档”(这是显然的),“保存权限”(以便使每一个相同的文件有相同的权限),以及“gzip”(缩减大小)。

  * 接下来,是压缩文档将获得的名称,在我们的例子中是backup.tgz。

  * 紧随其后的是我们想要备份的根目录。既然我们想备份所有东西:/

  * 接着就是我们要剔除的目录了。我们不想备份每一样东西,因为包括有些目录不是非常有用。同时确保你没有把备份文件本身也加进去了,否则,你会得到怪异的结果的。你也许同样不打算把/mnt文件夹包括进来——如果你在那儿挂载了其他分区——否则最终你会把那些也备份的。同时确保你没有任何东西挂载在 /media(即没有挂载任何cd或可移动介质)。否则,剔除/media。

  如果你想排除所有的其他分区,你可以使用 'l' 参数代替 --exclude, 上面的命令看起来象这样:

  tar cvpzlf backup.tgz / --exclude=/lost+found --exclude=/backup.tgz

  按:kvidell在论坛主题里建议也剔除/dev目录。不过,我有其他证据表明这样做是不明智的。

  好了,如果命令适合你的话,敲击确定键(或者回车键,管它叫什么名字),然后什么都不用干,放松一下。备份也许会花上一段时间。

  完了以后,在你的文件系统的根目录会有一个叫作backup.tgz的文件——很可能相当巨大。现在你可以把烧录到DVD上,或者移动到另一台机器,你可以做任何你想做的事情。

  按2:在进程的最后,你也许会得到一条信息,写着“tar:由于先前错误的耽搁而存在错误”或者其他什么,不过大多数情况下你可以仅仅忽略它。

  作为选择,你可以使用Bzip来压缩你的备份。这意味着较高的压缩比但是也意味着较低的速度。如果压缩比对你很重要,只需用“j”替换命令中的“z”, 同时给备份命一个相应的扩展名。这些会使命令变成这样:

  tar cvpjf backup.tar.bz2 / --exclude=/proc --exclude=/lost+found --exclude=/backup.tar.bz2 --exclude=/mnt --exclude=/sys

  2.1. 通过网络备份

  如果空白的文件系统太少了并且你又不能挂载其它的文件系统来保存备份文件,你有可能使用 netcat 来完成备份.

  在接受端你必须设置 netcat 用于写备份文件,象这样:

  nc -l -p 1024 > backup.tar.bz2

  然后你传送 tar 命令,不带 'f' 参数通过 netcat 在发送端,象这样:

  tar cvpj / <all those other options> | nc -q 0 <receiving host> 1024

  在上面的命令中 1024 仅仅是一个随机的端口号, 任何从 1024 或以上的都可以工作.

  如果安全的通过网络备份不依赖文件系统完成备份. 事实上一个真正快的网络比写备份文件到磁盘要快.

  在上面的讲述中 (由于我刚刚发呆,因此我不能证实它是可靠的) 是这个命令:

  tar cvpj / <all those other options> | ssh <remote host> "cat > backup.tar.bz2"

  3. 恢复

  警告:看在上帝的份上,在这一部分请小心谨慎。如果你不理解你在这里干了什么,你可能最终毁坏了对你而言很重要的东西,所以请小心谨慎。 那么,我们将紧接着上一章的例子:在分区的根目录下的backup.tgz文件

  再一次确保你是根用户以及备份文件在文件系统的根目录。

  Linux 美妙的地方之一就是这一项工作甚至可以在一个正在运行的系统上进行;没必要被引导cd或者任何东西搞得晕头转向。当然,如果你使你的系统无法被引导了。你也许别无选择,只能使用一张live-cd了,但是结果是一样的。你甚至可以在Linux系统正在运行的时候,移除它里面所有文件。可是我不告诉你那个命令!

  好了,言归正传。这是我要用的命令:

  tar xvpfz backup.tgz -C /

  如果你使用 bz2

  tar xvpfj backup.tar.bz2 -C /

  警告:这会把你分区里所有文件替换成压缩文档里的文件!

  只要敲一下确定/回车/你的兄弟/随便什么,然后去看焰火吧。同样,这会花一段时间。等它完成了,你就有了一个完全恢复的Ubuntu系统!只需确保在你做其他任何事情之前,重新创建你剔除的目录:

  mkdir proc mkdir lost+found mkdir mnt mkdir sys etc...

  当你重启以后,所以的事情都会和你备份的时候一模一样。

本文转自 wqmsl 51CTO博客,原文链接:http://blog.51cto.com/wqmsl/309870,如需转载请自行联系原作者

Linux下备份系统相关推荐

  1. linux下备份目录文件及目录

    一.关于Linux备份文件和应用的几个命令:tar和cp 在工作中,经常来备份文件和系统应用,常用到的主要是tar和cp命令,分别介绍如下: 一.tar命令,这个现在经常使用用来打包: tar包指的是 ...

  2. linux下获取系统时间的方法

    可以用 localtime 函数分别获取年月日时分秒的数值. Linux下获得系统时间的C语言的实现方法: 1. 可以用 localtime 函数分别获取年月日时分秒的数值. #include< ...

  3. linux下查看系统socket读写缓冲区

    一:linux下查看系统socket读写缓冲区大小配置: http://blog.csdn.net/herecles/article/details/8146017 1. tcp 收发缓冲区默认值 [ ...

  4. linux 如何查看属性,linux 下查看系统属性

    linux 下查看系统属性 (2009-06-28 19:01:34) 标签: linux 杂谈 分类: OS linux下查看系统属性 1.查看cpu信息 查看所有cpu信息:cat /proc/c ...

  5. linux 更改make版本,Linux下查看系统版本和make版本

    一.查看Linux内核版本命令(两种方法): 1.cat /proc/versionz [root@localhost ~]# cat /proc/version Linux version 2.6. ...

  6. Linux下查看系统启动时间、安装时间

    Linux下查看系统启动时间.安装时间 一.查看启动时间: 1.uptime命令 [root@iZ8vbf5x2ke0nbfocpm645Z ~]# uptime 17:52:33 up 14 day ...

  7. linux 查看核数与线程数,Linux下查看系统CPU个数、核心数、线程数

    Linux下查看系统CPU个数.核心数.线程数 查看系统CPU个数(物理个数)cat /proc/cpuinfo |grep "physical id"|sort -u 结果如下: ...

  8. linux系统日志分几个等级,Linux下日志系统详解

    Linux下日志系统详 1.linux系统上有两个日志服务syslog和syslog-ng syslog服务有两个进程syslogd和klogd syslogd: 系统产生的日志信息 klogd:内核 ...

  9. linux下备份windows系统版本,使用BackupPC备份Linux和Windows系统

    使用BackupPC备份Linux和Windows系统 版本1.0 作者:Falko Timme 本教程将介绍如何使用BackupPC备份Linux和Windows系统. BackupPC充当服务器, ...

最新文章

  1. 干货丨人工智能、机器学习和认知计算入门指南
  2. 你不能忽视的HTML语言3
  3. MYSQL笔记:删除操作Delete、Truncate、Drop用法比较
  4. 35 WM配置-作业-定义需求类型
  5. WPF 资源路径设置
  6. Android开发笔记(四十二)Broadcast的生命周期
  7. 【java】简介(一)
  8. 线程安全与synchronized
  9. 关联分析(三)--GSP算法
  10. cocos2dx学习笔记(一)在cocos2dx 中使用spine骨骼动画
  11. 数字电子技术基础(十三):时序逻辑电路(状态机)(移位寄存器、计数器、信号发生器)
  12. Linux c/c++之文件拷贝
  13. matpolitlib 画图
  14. exchange批量创建用户邮箱
  15. 一个小白的自渡-Git 仓库基础操作
  16. amcharts的使用介绍
  17. LaTex 如何生成参考文献
  18. 听说你想学Python爬虫?我从零教你啊
  19. 前端、数据库面试要点
  20. 简历里的期望薪资应该写多少比较合适呢

热门文章

  1. Flask框架从入门到精通之转换器(四)
  2. Spring源码分析之 lazy-init 实现原理
  3. Numba——python面向数组高性能计算库
  4. 二十二:制作app的时候超出部分不能滑动
  5. 以太坊智能合约预言机
  6. Java 中如何使用 SQL 查询文本
  7. CSR8670的A2DP与AVRCP的应用笔记
  8. 在一个夜黑风高的夜晚,坐在教室里学多线程
  9. VMware workstation安装
  10. 12本最优秀的Android开发电子书强力推荐