linux中将 home目录备份成,6种优化Linux系统备份的应用与技巧

【51CTO.com快译】当转为使用Linux时,你可能会注意到你所使用的版本会带有一个默认的备份工具。然而,可能该工具并没有被设置好去备份你系统中所有重要的部分。而且,使用该默认工具也可能导致它以比预期更低的效率去产生一些更大的备份数据。本文将向你介绍一些能够利用现有的存储空间去备份你的Linux系统的替代方法。

确保你的备份恰到好处

Ubuntu桌面版的默认工具:dejá-dup仅被设置为默认备份你的home目录,因此它遗漏一些你在需要将系统恢复到有序的工作状态时的重要部分。让我们试想一下你的系统由以下三个部分组成:

d94a05773897265db20836220e571653.png

那么,你就可以轻松地设置该默认工具来支持上述三个部分的所有内容了。但这样做的前提是你有大量的存储空间,或者可能会涉及到大量的数据通过互联网进行传输(如果你使用的是网络备份的话)。下面的一些应用和技巧就可以帮助你减少所需要的存储空间,并能确保你在系统崩溃发生时仍具有适当的备份。

1. 克隆分区以对Home目录予以快照

在你用户帐户的/home/[username]目录下会存储着一些数据,这些包括有你的个人配置,它们通常是一些以“点”开始的(例如/home/[username]/.local)文件或目录,以及音乐、图片和其他类型的文件与文件夹(例如,默认文档路径或下载文件夹)。这些就是你可能需要在备份数据时,以及对待“开箱即用”类工具所需要特别关注的地方。

你需要将/home目录放置到单独分区上的一个重要原因是:你可以将它从系统的主要部分中独立出来进行操作。同时,如果这样做了,你就可以通过克隆整个分区的方式去备份你的主目录。它也会在你需要的时候实现精确地磁盘级别的恢复。

正如我在过去的文章所提及到的,它有一个选项是dd,即完整地克隆整一个磁盘或分区(这就意味着备份的是相同大小全部分区)。当然,你也可以考虑使用Clonezilla。它在备份磁盘/分区的整体结构的同时,能省略掉未被使用到的磁盘空间,而使你的备份只是实际数据所占用到的分区大小。

2. 运用文件同步工具将Home目录的快照存储到多台机器上

文件同步工具是你打理个人文件的好选择,特别是当你使用着多台设备的时候。想必你能想出太多的此类工具的名称,其中包括简单的文件复制工具,如rsync;在线服务,如Dropbox;以及当地/点对点工具,如Resilio Sync等。其中的一些将会为你提供追踪和历史服务,尽管这些记录分钟级变化的特征会显得有些“吹毛求疵”且浪费存储空间。

40a67bb411b39785f1fa410f8118bda9.png

3. 使用归档工具来保留系统数据的历史快照

除了你的home目录之外,你可能还需要将如下部分计入你的备份清单:

/etc,它包含了各种配置,如/etc/apt/lists就描述性地罗列了在你的系统上新近安装的程序资源。

/var,它包含各种应用程序所使用的补充数据。此类例子包括各种日志(例如/var/log/dpkg,就记录着基于.deb系统的package事务)和缓存(例如/var/cache/dpkg,就保存着所有已安装package的副本),以及/var/lib/dpkg(用来存储package的数据库)。

标准的“归档式(archive-style)”备份工具也能够处理这些系统目录。它们通常会去检查源目录中的文件,以确定是否有该文件的***备份存在,如果没有则创建并进行更新。它们可以保留多份副本(例如每日一份或是每周一份),并且在通常情况下会压缩这些副本以节省磁盘空间。此类工具有很多种,包括程序dejá-dup和backintime等。

不过,你可能需要用根(root)用户的身份去设置和运行此类备份作业,或是使用管理员(admin)的权限来使用该工具的内置功能。

3a5b3e2bdbf811f14ea032e63578e2eb.png

通过使用这些应用程序(下面以backintime为例),你就可以简单地将你所需的目录添加到一个新的或是现有的备份作业中了:

5ab34f369700868298d93222fba1f0b6.png

通过适当地筛选这些目录备份,你可以将此举所节省的磁盘空间与典型的“全系统”备份比较一下,看看效果。你可以浏览如下链接以获取有关“/var的子目录中哪些是你可能需要的,而哪些则没有必要”的技巧。

4. 使用etckeeper来保留配置变更的记录

我们具体来说说/etc目录吧。工具etckeeper使用源代码级的控制来帮你备份系统中的重要配置。如果你想在Ubuntu中安装它,则需要以下的命令:

sudo apt-get install etckeeper

在安装过程中,它将创建一个备份(实际上是一个git的存储库),并将/etc下所有的文件都放入其中。

c0d57f7b060cae8ad02e04eb68d278f0.png

在此之后,你就可以使用任何git的客户端来查看你的系统配置的历史版本。更重要的是,该软件还设置有一个cron作业,它可以每天将你配置的变更放入其中。另外,鉴于大多数配置文件都是以纯文本的形式创建的,而且由于git(和其他源代码控制系统)是以逐行递进的原则进行各种变更存储的,因此对于多个版本的存储,其容量仍然能够保持为相当小体积。

5. 使用aptik来备份各种配置和软件包

aptik程序在其友好的GUI界面上集成了大量的备份/恢复工具:

ae4145d3eadbe65b4492a8da7d1285e1.png

它的“已安装软件(Installed Software)”功能将默认备份所有你已明确地安装了的软件包。下图是一个非常简短的示例列表:

fea1a443ce71e07029e76e1831beef4c.png

你也许会好奇:它为什么这么简短呢?这是因为在你需要使用该备份的时候,你显然已经安装了一个基本的系统,因此它并不需要那些基础的系统软件包。而如果你需要安装这几十个所列的包,那么它的软件包管理器则会自动帮你打理所有关联依赖包的安装事宜。可见,你的“完全软件备份”就只会消耗到那么几十兆字节的存储空间。够智能的吧?

6. 运用包列表来备份你的软件包

如果你熟悉命令行操作的话,你可能会做得比aptik更好。在确保能在稍后恢复你的系统的情况下,你试试如下命令。注意,该命令并非用来备份软包,而是录制一张包的列表。也就是说,以下命令会将安装包的列表导出到一个文本文件之中:

sudo dpkg --get-selections>my-packages.txt

除了能给你一张系统软件包的可供人阅读的统计之外(如上图所示),如下命令还可供你去批量重新安装这些软件包:

sudo dpkg -set-selections 

c5e69cc322346127d51a9081921499b0.png

sudo apt-get - u dselect-upgrade

注意,你仍然需要手工去处理那些你自行安装过的程序(它们很可能存放在/usr/local和/或 /opt)。除此之外,你过去的和刚恢复的系统之间的唯一区别就是各种软件是否需要手动去更新到***版本了。而这些也只是多占用区区几千字节的磁盘空间而已。

记住:请不要拘泥于使用上述的某一个应用,你可以结合多种应用联合使用,以确保在最坏的情况发生时,你仍然可以快速地做到备份与恢复。

原文标题:6 Apps and Tricks to Optimize Your Linux System Backups ,作者: Aaron Peters

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

【责任编辑:刘晶晶 TEL:(010)68476606】

点赞 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/502462.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

db2嵌套查询效率_db2性能优化

性能优化概述DB2 的性能优化可以从三个方面分析:内存,CPU 和 I/O 。DB2 性能优化是一件较为复杂的综合性的工作 , 需要对问题的根源作全方位的探索和思考。同时也需要较深厚的数据库管理经验与优化知识。这对于初学者来说可能有些勉为其难。但是在很多情…

python数据分析函数大全_Python常用数据分析函数集合

1.Map函数 - 列表解析 ①.map()函数解析 (1).python源码信息C:\Users\ArSang>python Python3.6.3rc1 (v3.6.3rc1:d8c174a, Sep 19 2017, 16:39:51) [MSC v.1900 64bit (AMD64)] on win32 Type"help", "copyright", "credits" or "licens…

我的世界linux开服权限不足,我的世界路由器开服怎么获得超级管理员权限

我的世界路由器开服怎么获得超级管理员权限。小伙伴们使用路由器开服的时候会发现一个明显的问题,部分路由器并没有给你最高管理员的权限,导致大家开服的时候出现各种问题。那么路由器开服怎么才能快速获得超级管理员的权限呢?说明:为什么路…

python无法调用安装的包_如何使用python命令和安装包进行安装Django框架

在python语言的框架中,Django框架是一种Web应用框架,这个框架的版本需要跟python的版本搭配上。其中,Django框架可以使用命令安装,也可以使用下载压缩包进行安装。下面利用实例说明Django框架安装方法和过程,操作如下&…

vs传值接收页面怎么直接打开_VS2003传值

估计楼主应该是用了ORM,只知道定义泛型类,然后ORM自己就完成映射,具体怎么得到的数据,就不知道了.所以,请退回到旧时代,用DataTable传递数据.cmdText:这个是SQL查询语句;connStr:这个是数据库连接字符串.public static DataTable(string cmdText,string connStr){SqlConnection…

linux摄像头内核驱动开发,怎么在Linux下开发摄像头驱动

无根之木不活,无基之楼不立,无论是学习哪个领域知识,基础是重中之重。针对学习linux驱动,我们来仔细谈谈:个人认为C语言和数据结构就是重中之重!Linux系统最优秀的地方就在于内核。无论是进程调度&#xff…

idea卡顿的解决方法_lt;绝地求生/PUBG/解决卡顿方法(停机9小时)维护gt;9月16日(星期三) 08点30分amp;崩溃...

【正式服不停机维护公告】我们将在北京时间10月7日(星期三) 10点开始正式服的不停机维护。- 维护开始时间:10月7日(星期三) 10点 - 维护内容:优化服务器以及BUG修复1. 修复了在四排模式下队伍列表中无法显示队员的问题;2. 修复了警示胶带背包…

安装应用需要打开未知来源权限_打开安卓这个开关 不让流氓软件肆意妄为

1月21消息,国外媒体Cybernews曝光了数款存在安全隐患的安卓应用,从这些应用中我们发现大都是相机类应用。根据Cybernews的说法这些应用会寻求多项权限,而多数权限和应用本身功能并不相关。其实在国内这类软件也并不缺乏,他们通常会…

git for windows_手把手教会舍友玩 Git (包教包会,再也不用担心他的学习)

作 者: BWH_Steven 原文链接:https://www.cnblogs.com/ideal-20/p/13644420.html舍友长大想当程序员,我和他爷爷奶奶都可高兴了,写他最喜欢的喜之郎牌Git文章,学完以后,再也不用担心舍友的学习了(狗头)哪里…

合并的表格怎么加横线_word怎么合并表格边框

回答:方法如下:去掉Word文字保留表格的方法一:1、全选表格,按 Delet 键,表格的所有文字被删除,如图3所示:2、图3是图1所示是表格,文字都没有了。去掉Word文字保留表格的方法二:全选表…

Linux免设置路由端口映射,2014/04/01 演示中设置linux路由器、端口过滤的使用、路由设置...

2.linux主机做为路由器,具有数据转发和随机丢包的功能1.1.iptables 基于内核的防火墙1.2.编写防火墙设置的脚本及鸟哥的linux私房菜(服务器篇)linux 路由器的设置参考鸟哥的linux私房菜(服务器篇)使能数据包转发功能即可,linux内核本身就支持1.#cat /pro…

stotybord如何添加子视图_SQL复杂查询-子查询

视图:1.视图的概念引入:SQL数据库里面存放的是SQL语句,视图中查看到的SQL查询语句,当我们运用客户端连接到视图时候,视图会运行里面的查询语句,从库中查找出数据,保存在临时表里面。当客户端和数…

python模拟登录页面下载_python爬虫之模拟登录

最近应朋友要求,帮忙爬取了小红书创作平台的数据,感觉整个过程很有意思,因此记录一下。在这之前自己没怎么爬过需要账户登录的网站数据,所以刚开始去看小红书的登录认证时一头雾水,等到一步步走下来,最终成…

springboot 2.3_Spring Boot 应用监控,早发现早

小Hub领读:服务都需要监控,SpringBoot项目中,你常用哪些监控模块呢?actuator?admin?作者:小小____https://segmentfault.com/a/1190000022945443当一个 Spring Boot 应用运行的时候,开发者需要对 Spring …

linux 内核 xfs ail,linux 3.10内核 xfs的一次io异常导致的hung crash

8556395.925003] XFS (sdi): xfs_log_force: error -5returned.[8556407.425047] INFO: task umount:19286 blocked for more than 1200seconds.----这个默认是120,该环境上是被人为设置1200[8556407.425653] "echo 0 > /proc/sys/kernel/hung_task_timeout…

sql statements_Postgresql监控sql模块之pg_stat_statements模块--部署篇

概述今天主要介绍一下PG一个很重要的模块--pg_stat_statements模块,对于做性能观察还是很不错的。一、pg_state_statements模块简介1、简介pg_stat_statements模块提供一种方法追踪一个服务器所执行的所有 SQL 语句的执行统计信息,可以用于统计数据库的资…

vscode 文件夹中查找_VSCode 多文件搜索和替换

本文目录结构VSCode 多文件搜索和替换虽然在“基础入门”这个部分中,我们一直都在介绍编辑器的各种功能,但是,为了把搜索这样的一个功能介绍完整,我们今天就再讲一下在 VS Code 当中如何使用多文件搜索。关于 VSCode 单文件搜索和…

linux服务配置大全 fedora 8 ftp 百度文库,Linux下VSFTP配置全攻略

Linux下VSFTP配置全攻略[日期:2007-10-05]来源:Linux公社作者:Linuxidc[字体:大 中 小]4]如果要以系统中存在的普通用户登入FTP,也没有什么可以设置的,添加一个用户就行。比如我要添加beinan这个用户&#…

collector list 多个分组_Java 8嵌套(多级)分组依据

您不能通过多个键对单个项目进行分组,除非您接受该项目可能会出现在多个组中。在这种情况下,您想要执行一种flatMap操作。实现此目的的一种方法是Stream.flatMap与临时对一起使用,以容纳和的组合,Item然后SubItem再进行收集。由于…

sqlserver 还原bak文件 查看不到_SQL server中用T-SQL语句实现(建库,分离,附加,备份,还原)...

会用图形界面创建后,今天可以学习用T-SQL来创建数据库及对数据库的操作。一. T-SQL 创建数据库--创建数据库create database MySchool--创建数据库 数据库名称MySchoolon primary(--创建主数据库文件nameMySchool_data,--主数据库文件名称fileNameD:MySchool_data.m…