如何备和恢复Ubuntu系统
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何备和恢复Ubuntu系统相关的知识,希望对你有一定的参考价值。
鄙视百度文库要收取5分的!!!
在 使用Ubuntu之前,相信很多人都有过使用Windows系统的经历。如果你备份过Windows系统,那么你一定记忆犹新:首先需要找到一个备份工 具(通常都是私有软件),然后重启电脑进入备份工具提供的软件环境,在这里备份或者恢复Windows系统。Norton Ghost是备份Windows系统时经常使用的备份工具。在备份Windows系统的时候你可能想过,我能不能把整个C盘都放到一个ZIP文件里去呢。这在Windows下是不可能的,因为在Windows中有很多文件在它们运行时是不允许拷贝或覆盖的,因此你需要专门的备份工具对Windows系统进行特殊处理。
和 备份Windows系统不同,如果你要备份Ubuntu系统(或者其它任何Linux系统),你不再需要像Ghost这类备份工具。事实上,Ghost 这类备份工具对于Linux文件系统的支持很糟糕,例如一些Ghost版本只能完善地支持Ext2文件系统,如果你用它来备份Ext3文件系统,你可能会 丢失一些宝贵的数据。
1. 备份系统
我该如何备份我的Ubuntu系统呢?很简单,就像你备份或压缩其它东西一样,使用TAR。和Windows不同,Linux不会限制root访问任何东西,你可以把分区上的所有东西都扔到一个TAR文件里去!
首先成为root用户:
$ sudo su
然后进入文件系统的根目录(当然,如果你不想备份整个文件系统,你也可以进入你想要备份的目录,包括远程目录或者移动硬盘上的目录):
# cd /
下面是我用来备份系统的完整命令:
# tar cvpzf backup.tgz –exclude=/proc –exclude=/lost+found –exclude=/backup.tgz –exclude=/mnt –exclude=/sys /
让我们来简单看一下这个命令:
“tar”当然就是我们备份系统所使用的程序了。
“cvpfz”是tar的选项,意思是“创建档案文件”、“保持权限”(保留所有东西原来的权限)、“使用gzip来减小文件尺寸”。
“backup.gz”是我们将要得到的档案文件的文件名。
“/”是我们要备份的目录,在这里是整个文件系统。
在 档案文件名“backup.gz”和要备份的目录名“/”之间给出了备份时必须排除在外的目录。有些目录是无用的,例如“/proc”、“/lost+ found”、“/sys”。当然,“backup.gz”这个档案文件本身必须排除在外,否则你可能会得到一些超出常理的结果。如果不把“/mnt”排 除在外,那么挂载在“/mnt”上的其它分区也会被备份。另外需要确认一下“/media”上没有挂载任何东西(例如光盘、移动硬盘),如果有挂载东西, 必须把“/media”也排除在外。
有人可能会建议你把“/dev”目录排除在外,但是我认为这样做很不妥,具体原因这里就不讨论了。
执行备份命令之前请再确认一下你所键入的命令是不是你想要的。执行备份命令可能需要一段不短的时间。
备份完成后,在文件系统的根目录将生成一个名为“backup.tgz”的文件,它的尺寸有可能非常大。现在你可以把它烧录到DVD上或者放到你认为安全的地方去。
在备份命令结束时你可能会看到这样一个提示:’tar: Error exit delayed from previous errors’,多数情况下你可以忽略它。
你还可以用Bzip2来压缩文件,Bzip2比gzip的压缩率高,但是速度慢一些。如果压缩率对你来说很重要,那么你应该使用Bzip2,用“j”代替命令中的“z”,并且给档案文件一个正确的扩展名“bz2”。完整的命令如下:
# tar cvpjf backup.tar.bz2 –exclude=/proc –exclude=/lost+found –exclude=/backup.tar.bz2 –exclude=/mnt –exclude=/sys /
2. 恢复系统
在进行恢复系统的操作时一定要小心!如果你不清楚自己在做什么,那么你有可能把重要的数据弄丢,请务必小心!
接着上面的例子。切换到root用户,并把文件“backup.tgz”拷贝到分区的根目录下。
在 Linux中有一件很美妙的事情,就是你可以在一个运行的系统中恢复系统,而不需要用boot-cd来专门引导。当然,如果你的系统已经挂掉不能启动了, 你可以用Live CD来启动,效果是一样的。你还可以用一个命令把Linux系统中的所有文件干掉,当然在这里我不打算给出这个命令!
使用下面的命令来恢复系统:
# tar xvpfz backup.tgz -C /
如果你的档案文件是使用Bzip2压缩的,应该用:
# tar xvpfj backup.tar.bz2 -C /
注意:上面的命令会用档案文件中的文件覆盖分区上的所有文件。
执行恢复命令之前请再确认一下你所键入的命令是不是你想要的,执行恢复命令可能需要一段不短的时间。
恢复命令结束时,你的工作还没完成,别忘了重新创建那些在备份时被排除在外的目录:
# mkdir proc
# mkdir lost+found
# mkdir mnt
# mkdir sys
等等
当你重启电脑,你会发现一切东西恢复到你创建备份时的样子了!
Linux备份策略研究
世界上没有绝对安全的系统。如果想获得绝对安全的系统,只有不连接网络,不让管理员之外的人使用,刷卡管制人员进出,使用监视器监视录像,甚至于不 要开机。但是这是完全不切实际的,我们仅能寄望尽量让系统能在承担低风险的情况下工作,因为任何操作系统都不可能毫无漏洞。那么怎样才能让系统承担最低的 风险呢?回答因该是在保障系统尽量安全的基础上,做好各个系统上的数据备份工作。一旦系统遭受到毁灭性的打击,可将平时做好的备份数据及时恢复,这样才能 使被破坏的系统迅速恢复正常,以避免不必要的损失。
下面针对Linux操作系统上的数据备份方法发表一下自己的看法。
数据备份种类
总的来说,在Linux操作系统中将备份分为两类:系统备份,实现对操作系统和应用程序的备份;用户备份,实现对用户文件的备份。在下面我们会看到,系统备份和用户备份是不同的。
系统备份
系统备份就是对操作系统和应用程序的备份,进行系统备份的原因是尽量在系统崩溃以后能快速简单完全地恢复系统的运行。进行备份的最有效方法是仅仅备份那些对于系统崩溃后恢复所必需的数据。
Linux系统中很多重要的文件位于/etc目录之下,如:
/etc/group : 组用户信息;
/etc/passwd : 包含所有的用户信息,如密码,登录shell等;
/etc/fstab : 配置系统有哪些文件系统;
/etc/inittab : 配置init在不同运行级别下分别如何启动系统;
/etc/hosts : 域名解析的配置信息;
/etc/inetd.conf : 进程控制信息;
/etc/printcap:配置如何与打印机通信;
/etc/XF86Config:包含XFree86的初始配置;
上面这些重要的配置文件都需要定期的做备份。
不 同的系统可能有很多重要配置文件,可以看到/etc目录下的配置文件非常重要。当然,某些程序使用了其他目录下的一些文件,但是Linux的基本配置文件 绝大多数都位于/etc目录下。很多人曾经花费了好长时间才正确的配置了XF86Config文件,想到如果重新再做一遍,就很费时费力。再举个例子, /etc目录下的passwd文件,如果误操作,将此文件更改,或删除了,则整个系统用户无法正常登录,如果定期或及时的对其备份,遇到上面的情况后,就 可以非常快速的恢复。
如果修改了某个程序所使用的配置文件,一般不能将其搬移到其它的地方,因为程序通常在固定的地方寻找配置文件。因此记录对系统所做的修改也非常重要,无论所做的修改如何小,当系统崩溃时才能轻松的恢复系统。
用户备份
用户备份不同于系统备份,因为用户的数据变动更加频繁一些。当备份用户数据时,只是为用户提供一个虚拟的安全网络空间,合理的放置最近用户数据文件的备份,当出现任何问题,例如,误删除某些文件或者硬盘发生故障时,用户可以恢复自己的数据。
用户备份应该比系统备份更加频繁,也许每天都需要进行备份,或使用cron程序自动定期运行某个程序的方法来备份数据。
数据备份策略
不 管系统多么可靠,总会发生一些意想不到的事情,致使系统数据丢失。因此使用备份来保护数据不丢失是一种非常重要的手段,尤其在系统数据非常重要的时候。经 常进行数据备份能够减少偶然破坏造成的损失,保证系统能够从错误中恢复正常运行。备份不应该成为一个长时间痛苦的事情,但它是作为系统管理必不可少的工 作,在着手之前进行详细的考虑和计划是应该的。
在进行备份之前,首先要选择合适的备份策略,这将决定何时需要备份,以及出现故障时进行恢复的方式。通常使用的备份方式有三种:
完全备份: 每隔一定时间就对系统进行一次全面的备份,这样在备份间隔期间出现数据丢失等问题,可以使用上一次的备份数据恢复到前次备份时数据状况。这是最基本的备份 方式,但是每次都需要备份所有的数据,并且每次备份的工作量也很大,需要大量的备份介质,因此这种备份不能进行的太频繁,只能每隔一段较长时间才进行一次 完整的备份。但是这样一旦发生数据丢失,只能恢复到上次备份的数据,这期间内更新的数据就有可能丢失。
增量备份: 首先进行一次完全备份,然后每隔一个较短时间进行一次备份,但仅仅备份在这个期间更改的内容。当经过一个较长的时间后再重新进行一次完全备份,开始前面的 循环过程。由于只有每个备份周期进行一次完全备份,其他只进行更新数据的备份,因此工作量小,可以进行频繁的备份。例如以一个月为一个周期,一个月进行一 次完全备份,每天晚上0点进行这一天改变的数据备份。这样一旦发生数据丢失,首先恢复到前一个完全备份,然后按日期一个一个恢复每天的备份,就能恢复到前 一天的情况。这种备份方法比较经济。
累计备份:这种备份方法与增量备份相似,首先每月进行一次完全备 份,然后每天进行一次更新数据的备份。但不同在于,增量备份是备份该天更改的数据,而累计备份是备份从上次进行完全备份后更改的全部数据文件。一旦发生数 据丢失,可以使用前一个完全备份恢复到前一个月的状态,再使用前一个累计备份恢复到前一天的情况。这样做的缺点是每次做累计备份工作的任务比增量备份的工 作量要大,但好处在于,增量备份每天都备份,因此要保存数据备份数量太多,而累计备份则不然,只需保存一个完全备份和一个累计备份就可以恢复故障以前的状 态。另外在进行恢复工作时,增量备份要顺序进行多次备份的恢复,而累计备份只需两次恢复,因此它的恢复工作相对简单。
增量备份和累计备份 都能以比较经济的方式对系统进行备份,在这些不同的策略之间进行选择不但与系统数据更新的方式相关,也依赖于管理员的习惯。通常在系统数据更新不是太频繁 的话,可以选用更新备份的方式。但是如果系统数据更新太快,使每个备份周期后的几次累计备份的数据量相当大。这时候可以考虑增量备份或混用累计备份和增量 备份的方式,或者缩短备份周期。
数据备份命令
在Linux系统中常用的备份命令通常有下面几种:
1.使用tar命令
Linux的实用程序tar最初是为了制作磁带存档而设计的(把文件和目录复制到磁带中,然后从存档中提取或恢复文件),而现在的应用中可以把它用于任何设备,它是数据备份中最常用的命令之一。
下面具体介绍tar命令的使用方法:
(1)格式:tar 参数 ......
(2)参数:
c: 创建备份(Create)
v: 表示回显模式(Verbose),将产生一系列备份的文件列表
f: 指定使用的备份文件,它后面的参数为输出的备份文件名
x: 展开备份文件
t: 显示备份文件的内容
T: 后面跟随一个文件参数,指定从这个文件中读取要备份的各个文件的路径。如果不使用T参数,那么就需要一个参数,指明进行备份文件和目录的路径
Z: 使用压缩方式创建和解开备份文件,这是GNU的新版tar的功能,需要同时安装gzip。
例如:
$ tar cvf backup.tar /etc
上 面的命令将/etc下的所有文件打包成tar存档文件backup.tar。tar的第一个参数“cvf”,是tar的命令参数,“c”告诉tar创建一 个存档文件;“v”选项迫使tar采用冗长模式,即在存档时打印每个文件名;“f”选项告诉tar下一个参数backup.tar是创建的存档文件名。
下面一行的命令将tar文件backup.tar解开并放到当前工作目录下。必须说明的是这样做是有危险的,因为在从tar文件中解开文件时,旧文件将被覆盖。
$ tar xvf backup.tar
在解开tar文件之前,知道在何处打开文件是非常重要的。例如,假设存档以下文件:/etc/hosts,/etc/group和/etc/passwd。如果用下述命令:
$ tar cvf backup.tar /etc/hosts /etc/group /etc/passwd
目录/etc会被加到每个文件名前。为了将文件展开到正确位置,需要用下述命令:
$ cd /
$ tar xvf backup.tar
这是因为文件从存档文件中抽取出路径名,如果用下述命令存档文件:
$ cd /etc
$ tar cvf hosts group passwd
这样目录名就不存在存档文件中,因此需要在展开文件之前用“cd /etc”命令进入目录etc。由此可见,tar文件的创建方式与在何处展开有很大关系。
命令:
$ tar tvf backup.tar
在解开tar文件之前显示tar文件的索引,用这种方式可以看到存档文件中与文件名有关的目录名,从而在正确位置上展开存档文件。
2.gzip和compress 命令
与MS-DOS的存档程序不同, tar在存档过程中并不压缩文件。因此,如果存储两个1MB的文件,那么tar文件大小为2MB,gzip命令用来压缩文件(被压缩的文件并不需要是tar格式)。
例如:
$ gzip -9 backup.tar
压缩backup.tar文件,产生的文件为backup.tar.gz,开关“-9”告诉gzip用最高的压缩比。gunzip命令用来解开一个gzip压缩的文件,用“gzip -d”也可以达到同样效果。
例如:
$ gunzip backup.tar.gz
$ gzip -d backup.tar.gz
3. 联合使用
介绍了这些命令之后,我们来尝试组合使用这些命令。为了压缩存储一组文件,可以用下述命令:
$ tar cvf backup.tar /etc
$ gzip -9 backup.tar
结果是形成文件backup.tar.gz。展开该文件时,用相反的命令:
$ gunzip backup.tar.gz
$ tar xvf backup.tar
tar命令还包括“z”选择项,它会自动采用gzip压缩算法来联机压缩/解压文件。例如,下列命令:
$ tar cvfz backup.tar.gz /etc
上面一行的命令等价于:
$ tar cvf backup.tar /etc
$ gzip backup.tar
而命令:
$ tar xvfz backup.tar.Z
可以用来代替下述命令:
$ uncompress backup.tar.Z
$ tar xvf backup.tar
案例实验
案例:使用tar进行备份。
选定了备份方式之后,可以使用tar、cpio、dump等备份工具软件将数据备份到磁带上。对于一般的备份,使用tar就足够了。tar能够创建备份文档,能够备份到磁带上或者产生一个文件,如:
$ tar cvf root.tar /root
将/root目录下的所有文档备份到root.tar文件中,root.tar为指定输出的备份文件,/roo t指出要做备份的目录。如果要备份到磁带上,将输出的备份文件指定为磁带设备文件即可:
$ tar cvf /dev/rmt/0h /root
如果设置了环境变量TAPE,则可以不使用选项“f”指定输出磁带设备名字:
$ TAPE=/dev/rmt/0h; export TAPE
$ tar cv /root
要进行增量备份,必须找出哪些文件在这个期间进行更新。这个任务可以由命令find来完成,例如查找过去七天更改的文件,并使用tar的“-T”参数制定进行备份的文件,命令如下:
$ find / -mtime -7 -print > /tmp/filelist
$ tar -c -T /tmp/filelist -f /dev/rmt/0h
由 于要使用find来找出需要备份的文件列表,那么就需要利用文件的修改时间进行查询,需要使用“-mtime” 参数。另一个更有用的参数是“-newer”,可以查找出所有比某个文件更新的文件,由于备份是周期进行的,因此可以在完全备份之后生成一个标记文件,那 么所有比这个文件新的文件都需要进行更新备份。
$ find / -newer full_back_tag_file -print > /tmp /filelist
进 行数据备份需要定期执行,不能完全依赖于管理员手工进行备份。备份也应该选择在系统比较空闲时进行,以免影响系统的正常处理任务。通常可以选择半夜 0:00点之后进行备份,这样更不能将这个任务由管理员手工完成了。但Linux提供了定时服务cron程序,能够在确定的时间中执行一系列任务,因此数 据备份必须和cron合作来完成,或者使用/etc下的daily,weekly,monthly文件做定时备份的操作。追问
这个试过了不太管用,总是把我整个盘都备份下来
参考技术A 有一个软件叫再生龙,台湾的,类似于ghost你可以试试。这个网站http://drbl.nchc.org.tw/clonezilla/news/ 参考技术B ubuntu11.10里面有自己的备份工具
Elasticsearch的灾备和恢复
Es每个节点上只会存储部分的数据,而使用replicas机制已经对数据进行冗余备份,但是对生产的Es进行全量(第一次为全量)和增量数据灾备是非常有必要的。一般会选择将数据灾备到共享文件系统中。但是最终决定使用每日(每周,取决于数据的重要性)定时任务将共享文件的灾备数据打tar包并同步到阿里云的OSS的特定bucket中,即灾备的灾备。虽然定时的快照为增量数据,但是只有es清除那些是增量数据哪些是第一次的基础数据,所以每天需要将全量数据打包并同步到OSS,若OSS只存储5天的全量数据,则在每天同步完之后需要清除5天前的全量数据包。
若发生异常需要恢复数据的时候,首先从共享文件系统直接进行快照恢复,共享文件系统不可用则可以直接从OSS中拉取数据,解压并替换共享目录下的数据,再执行快照恢复命令。
1、灾备
基于Es的snapshot API可以对集群灾备,但是需要先创建仓库,并且在仓库中创建快照(第一次为全量数据,后续为增量数据),而在快照区中分索引。以下是仓库可选择的类型,默认会选择共享文件系统(并且一般会使用sshfs,并且会遇到坑):
1、共享文件系统,比如 NAS
2、Amazon S3
3、HDFS (Hadoop 分布式文件系统)
4、Azure Cloud
1、sshfs共享文件系统创建
安装sshfs:
yum install sshfs
在每个节点下配置共享文件目录:
sudo sshfs -o allow_other -o nonempty root@192.168.10.11:/data/sshfs-repository/ /data/elasticsearch-repository -p 61822(说明:-o allow_other所有用户都可以读写,root用户使用ssh将本地的文件目录/data/elasticsearch-repository共享到远程IP(或域名)为192.168.10.11上的/data/sshfs-repository/目录,若ssh段端口不为22需要使用-p 61822指定,而由于可能存在已经运行过命令,已经挂在过则目录下可能存在文件则可以使用-o nonempty告诉其可以忽略目录下的文件进行删除或修改),如下:
若挂在错了,或者需要删除已经挂在的点,可以使用(不要自行删除文件或目录的方式):
fusermount -uz /data/elasticsearch-repository(后面的路径为本地路径)
测试,可以在每个节点服务器上运行一下命令检测用户是否对本地的共享文件目录拥有写权限:
sudo -u elasticsearch touch /data/elasticsearch-repository/test
2、es配置
将集群中每个节点下的elasticsearch.yml中添加仓库路径的白名单列表:
path.repo: /mnt 或 path.repo: [“/path1” , “path2” ]
3、仓库创建
需要根据自己的网络设置快照或恢复的限流参数,只要不能影响正常的数据索引和查询聚合请求。
// 使用GET请求用于创建,POST请求若存在则为修改
POST _snapshot/my_backup/
"type": "fs", // 仓库类型为共享文件系统
"settings":
"location": "/mnt", // 仓库路径,需要与sshfs的远程目录一致,并在需要在es集群的白名单中存在
"max_snapshot_bytes_per_sec" : "50mb",
// 当快照数据进入仓库时,这个参数控制这个过程的限流情况。默认是每秒 20mb 。
"max_restore_bytes_per_sec" : "50mb"
// 当从仓库恢复数据时,这个参数控制什么时候恢复过程会被限流以保障你的网络不会被占满。默认是每秒 `20mb`。
4、快照相关操作
1、快照的创建
创建快照,默认为异步执行,添加参数wait_for_completion则为同步等待,如下:
PUT _snapshot/my_backup/snapshot_1?wait_for_completinotallow=true
2、索引配置
由于es集群环境中一般除了业务数据索引外还会有kibana或监控的索引,所以一般会指定需要快照的索引,如下:
PUT _snapshot/my_backup/snapshot_2
"indices": "index_1,index_2"
3、获取快照相关信息
获取某仓库下的一个或索引的快照信息,如下:
GET _snapshot/my_backup/snapshot_2
或
GET _snapshot/my_backup/_all
4、监控快照进度
如果快照距离上一次的数据增量比较大或第一次执行快照,则快照执行的时间可能会比较长,可以使用以下api对其执行状态进行查看(由于使用_status查看的线程和执行快照的线程属于同一类线程池,所以速度回比较慢):
GET _snapshot/my_backup/snapshot_3
或
GET _snapshot/my_backup/snapshot_3/_status
5、快照取消或删除
因为快照是增量的,有可能很多快照依赖于过去的段,索引不能使用人工等方式进行删除操作,而需要使用Es 的delete API。由于快照的过程会比较长,若在执行时需要取消,可以使用与删除一样的API,只是若在还在执行快照的过程中接收到取消操作,则会先中断快照进行,再将已经执行的数据进行删除,命令如下:
DELETE _snapshot/my_backup/snapshot_2
2、恢复
1、使用快照恢复数据
由于回复工程默认为异步恢复,可以使用wait_for_completinotallow=true同步获取结果,并且可以使用indices参数指定需要恢复的索引的名称,并且可以使用rename_pattern参数查找所提供的模式能匹配上的正在恢复的索引(没怎么理解),使用rename_replacement参数重命名回复后的索引名称,如下:
POST /_snapshot/my_backup/snapshot_1/_restore?wait_for_completinotallow=true
"indices": "index_1",
"rename_pattern": "index_(.+)",
"rename_replacement": "restored_index_$1"
2、恢复过程监控
从仓库恢复数据借鉴了 Elasticsearch 里已有的现行恢复机制。 在内部实现上,从仓库恢复分片和从另一个节点恢复是等价的,使用了Es的recover API,如下:
GET restored_index_3/_recovery
3、取消恢复
若在执行过程中需要撤销恢复操作,可以执行删除操作即可,若接收到删除命令首先会停止恢复操作,再将已恢复是数据进行删除,命令如下:
DELETE /restored_index_3
3、ES snapshot java API
若想定时为es集群索引创建快照,则可以使用java定时任务创建,如下:
private static final String BASE_SNAPSHOT = "snapshot_geleevr_";
/**
* 每天执行Es集群快照
*
* @throws Exception
*/
// @Scheduled(crnotallow="0 0 1 * * ?")
// @Scheduled(fixedRate=30000000)
public void execute() throws Exception
TransportClient client = ESClient.me();
CreateSnapshotRequestBuilder builder = CreateSnapshotAction.INSTANCE.newRequestBuilder(client);
String snapshotName = BASE_SNAPSHOT + UTCDateUtil.userFormat(new Date());
long start = System.currentTimeMillis();
// 快照执行的时间可能比较长,而且不可控(只能定时通过status api查询),所以异步获取状态
builder.setIndices(ESConfig.COMPANY, ESConfig.ANALYZE)
.setRepository(ESConfig.ES_REPOSITORY)
.setSnapshot(snapshotName)
.execute(new ActionListener<CreateSnapshotResponse>()
@Override
public void onResponse(CreateSnapshotResponse response)
long end = System.currentTimeMillis();
long seconds = (long) ((end - start)/1000);
logger.info("task of snapshot is sync sussess , total time is seconds !", snapshotName, seconds);
@Override
public void onFailure(Exception e)
long end = System.currentTimeMillis();
long seconds = (long) ((end - start)/1000);
logger.error("task of snapshot is failure , total time is seconds !", snapshotName, seconds);
);
4、遇到的问题
1、doesnt match any of the locations specified by path.repo because this setting is empty
在为es集群环境做灾备和恢复时候,首先需要创建创建一个仓库,并往仓库中存放快照(每个快照中会区分不同的索引)。但是在创建仓库的时候,要求仓库的地址必须在每个集群环境中的elasticsearch.yml中进行配置(相当于一个白名单列表):
单个:path.repo: /mnt
多个:path.repo: [“/data” , “/mnt”]
2、在使用sshfs创建共享文件系统的时候,报错read: Connection reset by peer
Es在灾备的时候可以将数据存放到共享文件系统(一般选择sshfs),或hdfs等。但是在执行如sudo sshfs -o allow_other root@192.168.10.11:/data/elasticsearch-repository /mnt的时候,报错read:Connect reset by peer,刚开始以为是es的问题,最后发现就是ssh的问题。由于我使用的是阿里云服务器,并且使用秘钥进行连接,我还以为是它的问题。最后:
ssh 192.168.10.11
ssh: connect to host 192.168.10.11 port 22: Connection refused
想起来我修改过ssh的端口,则需要将命令添加端口就好了,如下:
sudo sshfs -o allow_other root@192.168.10.11:/data/elasticsearch-repository /mnt -p 61822
以上是关于如何备和恢复Ubuntu系统的主要内容,如果未能解决你的问题,请参考以下文章