centos备份与还原

dump备份
restore还原
dd数据备份
tar备份
scp
mkisofs镜像文件制作

dump备份
1.dump主要用于备份整个文件系统备份,虽然也可以备份单一目录,但是对目录文件支持不足,单一目录还是需要使用打包压缩的方式进行备份。

dump是功能上制定等级,也就是可以进行增量备份
dump等级分为0-9,10个等级,0为完全备份,1是在0的基础上惊醒增量备份,一次类推。

当待备份的数据为单一文件系统

可以利用了level 0~9进行备份,同时可以使用dump完整功能

当待备份的数据只是目录,并非单一文件系统

限制:
所有备份数据必须都在该目录下
仅能使用level 0 进行数据备份
不支持-u参数,即无法创建/etc/dumpdates这个level备份的时间记录文件
语法:dump [-Suvj] [-level] [-f备份文件]待备份数据
dump -W
选项与参数:
-S:仅列出后面的待备份数据需要多少磁盘空间才能够备份完毕
-u:将这次备份记录到/etc/dumpdates文件中
-v:将dump文件过程显示出来
-j:加入bzip2的支持,将数据进行压缩,默认压缩等级2
-level:备份等级0~9
-f:备份文件
-W:列出在/etc/fstab里面的具有dump设置的分区是否有过备份

案例
1.查看需要备份的文件需要多少空间才能备份完
dump -S /tmp
2.备份文件
dump -u -0 -f /tmp/backup/passwd.dump.0 /etc/passwd ##备份/etc/passwd文件到/tmp/backup/passwd.dump.0 并起名为passwd.dump.0
参数在上面可以看到
3.查看文件系统备份记录
dump -W
4.增量备份
在passwd里面增加文件数,
dump -1 -f /tmp/backup/passwd.dump.1 /etc/passwd
5.单一目录进行备份
dump -0 -f /root/etc.dump /etc

在这里备份了数据,如何来恢复数据呢
dump备份的数据有restore进行还原


语法:

查看dump文件:restore �t [-f dumpfile] [-h]
比较dump与实际文件:restore �C [-f dumpfile] �D挂载点
进入互动模式(还原单个文件):restore �i [-f dumpfile]
还原整个文件系统:restore �r [-f dumpfile]

选项与参数:
相关的各种模式,各种模式无法混用.例如不可以写 -tC

-t:此模式用在察看 dump起来的备份档中含有什么重要数据!类似 tar -t功能;
-C:此模式可以将 dump内的数据拿出来跟实际的文件系统做比较,最终会列出[在 dump文件内有记录的,且目前文件系统不一样]的文件;
-i:进入互动模式,可以仅还原部分文件,用在 dump目录时的还原
-r:将整个 filesystem还原的一种模式,用在还原针对文件系统的 dump备份;

其他较常用到的选项功能:
-h:察看完整备份数据中的 inode与文件系统 label等信息
-f:后面就接你要处理的那个 dump文件
-D:与 -C进行搭配,可以查出后面接的挂载点与 dump内有不同的文件

举例:
1.查看dump备份的文件、
restore -t -f /tmp/backup/tmp.dump.0
2.比较文件差异
restore -C -f /etc/backup/tmp.dump.0 -D /tmp
3.还原整个文件系统
首先进入需要还原的文件
cd /tmp
restore -r -f /etc/tmp.dump.0还原备份
restore -r -f /etc/tmp.dump.1 还原增量

dd
dd功能不仅限于创建文件,更多功能在于“备份”,cp,dump只是简单的文件数据拷贝,而dd可以读取设备的所有内容,比如superblock,boot sector,mete data等

语法:dd if=”input file” of=”output file” bs=”block” count=”number”
选项与参数:
if:输入文件,也可以是设备
of:输出文件,也可以是设备
bs:每个block的大小,默认是512K
count:block数量

举例:
1.文件备份
dd if=/etc/passwd of=/tmp/passwd.dd
2.文件系统备份
dd if=/dev/sda1 of=/tmp/boot.dd bs=1M
3.文件系统还原
dd if=/tmp/boot.dd of=/dev/sda1 bs=1M
4.文件系统完全复制
Dump备份时,我们需要先用Dump将文件系统备份,然后创建新的文件系统,格式化,再将备份文件还原到新的文件系统。
使用dd可以不用格式化,就可以完全复制一个文件系统,因为dd将uperblock,mete data等信息都进行复制,格式化要做的不也正是这些事吗
新建一个磁盘,直接使用dd
dd if=/dev/sda1 of=/dev/sda5

tar备份
1.tar命令

tar是一个已移植到Linux中的经典UNIX命令。tar是Tape ARchive(磁带归档)的缩写,最初设计用于将文件打包到磁带上。它是一个基于文件的命令,它本质上是连续地、首尾相连地堆放文件。

使用tar可以打包整个目录树,这使得它特别适合用于备份。归档文件可以全部还原,或从中展开单独的文件和目录。备份可以保存到基于文件的设备或磁带设备上。文件可以在还原时重定向,以便将它们重新放到一个与最初保存它们的目录(或系统)不同的目录(或系统)。tar是与文件系统无关的,它可以使用在ext2、ext3、jfs、Reiser和其他文件系统上。

在Linux世界里经常使用tar命令进行备份,此时将涉及tar命令的一些参数。 tar命令的完整格式是:
tar <operation> [options] <files_to_backup_or_restore>

其中:
operation:用于指定tar要进行的操作
options:用于指定一系列的选项
files_to_backup_or_restore:用于给出要备份或要恢复的文件或目录名,在指定目录时也包括了这个目录下的子目录。

下表给出了tar命令的操作说明。

操作说明

[-]A 连接多个归档文件为一个归档文件。
[-]c 用于创建一个新的存档文件。
[-]x 从归档文件中恢复备份文件。
[-]t 用于列出一个存档文件中的文件名。
[-]u 仅仅添加比存档文件中更新的文件。即,用新增的文件取代原备份文件,如果在归档文件中找不到要更新的文件,则把它追加到备份文件的最后。
[-]d 将归档文件的内容与文件系统上的当前文件作比较。
[-]r 将文件追加到指定的归档文件中。
--delete 从归档文件中删除指定的文件。

下表给出了tar命令的常用选项说明。

选项说明

-f name 使用name指定存档文件名或设备名。
-v 列出处理的详细信息。
-z 用GNU的gzip压缩文件或解压。
-j 用GNU的bzip2压缩文件或解压。
-C directory 将当前目录切换到 directory。
-M 创建/列出/恢复多卷存档文件,以便在几个备份介质中存放。
-N DATE 指定仅对那些比DATE新的文件进行操作。
-p 表示希望保留文件许可权限。
-P 保留文件的绝对路径,即不去掉/。
-w 要求等待用户确认每一个操作。
-W 表示在写入备份内容到备份设备以后再读出来进行验证以提高可靠性。
-T filename 从指定的文件中读需要备份或恢复的文件名。
-X filename 不处理给定文件中列出的文件。
--exclude=PATTERN 不处理指定的文件。

使用tar备份文件
通常将备份文件存储在单独的分区中,可以是系统本地硬盘中的一个分区,也可以是另外挂装的移动设备中的一个分区。因此,在备份之前,应该创建挂装点目录,并挂装文件系统。
1.备份一个和多个目录
tar -zcvpf /tmp/full-home.tar.gz /home /etc 吧/home和/etc两个目录备份到/tmp/full-home.tar.gz
2.备份整个目录,除了mnt,mdeia,dev,proce,backups和lostr+found
tar -zcvfp /backups/full-backup.tar.gz -C / $(ls /| egrep -v "backups|mnt|media|dev|lost+found|proc")
3. 使用exclude选项去除无需备份的文件和目录,除了mnt,media,dev,proc等
tar -zcvpf /backups/full-backup.tar.gz -C / --exclude=mnt --exclude=media --exclude=dev . 备份整个/系统,去除/mtn,media和dev
4.备份etc,home,usr/local和var/spool.不包括var/spool/squid目录
tar -zxvpf /backup/full-backup.tar.gz -C / --exclude=var/spool/squid etc home usr/local var/spool
5,将需要备份的目录放到文本文件里面
cat whatsbackup.txt
/home
/etc
/usr/local
/root
tar -zcvpf /backup/full-backup.tar.gz -T whatsbackup.txt
解释: -T 参数后制定的文件中,不能使用文件通配符

6.增量备份
1.下面的命令将备份/home目录自2016-2-2以来修改过的文件
tar -N 2016-2-2 -zcvfp /back/backup-$(date +$F).tar.gz /home
2.下面的命备份昨天修改过的文件
tar -N $(date -d yesterday "+$F") -acvfp /back/backup-$(date +$F).tar.gz /home

以下两种书写方式均可,但含义有所不同:
-N yesterday : 比昨天的当前时间新的文件,例如:若当先时间为 2:31,则表示自昨天 2:31 以来的新文件
-N $(date -d yesterday ”+%F”) : 自昨天 0:00 以来的新文件

下面的命令使用命令替换从文本文件中获得日期
# tar -N $(cat /backups/last-full/full-backup-date) \
> -zcvpf /backups/inc-backup_$(date +%F).tar.gz /home

/backups/last-full/full-backup-date 是在创建完全备份的同时使用如下命令创建的文件:
date +%F > /backups/last-full/full-backup-date

2、使用 find 命令获取增量备份的文件列表 使用如下命令找出 n 天(如:7天)内修改过的文件,生成备份内容的文件列表
# find /home /etc /root -mtime -7 -print > /backups/logs/inc-backup_$(date +%F).log

对指定文件列表中的文件实现增量备份
# tar -zcvpf /backups/inc-backup_$(date +%F).tar.gz \
> -T /backups/logs/inc-backup_$(date +%F).log

scp
scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。

安装:

yum install openssh-clients

1.命令格式:
scp [参数] [原路径] [目标路径]
2.命令功能:
scp是 secure copy的缩写,scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。
3.命令参数:

-1 强制scp命令使用协议ssh1
-2 强制scp命令使用协议ssh2
-4 强制scp命令只使用IPv4寻址
-6 强制scp命令只使用IPv6寻址
-B 使用批处理模式(传输过程中不询问传输口令或短语)
-C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p 保留原文件的修改时间,访问时间和访问权限。
-q 不显示传输进度条。
-r 递归复制整个目录。
-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit 限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option 如果习惯于使用ssh_config(5)中的参数传递方式,
-P port 注意是大写的P,port是指定数据传输用到的端口号
-S program 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

1.本地到远程
scp aa.txt root@ip:/tmp
注释:ip可以是ip或远程主机名
2.远程到本地
scp root@ip:/etc/passwd /etc
3.拷贝目录的话需要加上-r
4.指定端口复制文件
scp -p 443 root@ip:/usr/local/aa.txt /tmp
5.文件的传输速度的快慢,跟文件压缩加密有关。


mkisofs镜像文件备份

语法:mkisofs [-o镜像文件] [-rv] [-m file]待备份的文件 [-V vol] �graft-point isodir=sysdir
选项与参数:
-o:镜像文件
-r:产生UNIX/Linux支持的文件数据
-v:显示构建ISO的过程
-m:排除的文件
-V:卷标名称
-graft-point:目录对照名称,如果不进行指定所以的信息都会保持在根目录

举例:
1.mkisofs -o /tmp/system.img -r -m /home/lost+found -V 'tkf_file' -graft-point /root=/root /home=/home /etc=/etc
2.mount -o loop /tmp/system.img /mnt


参考:
http://www.jb51.cc/article/p-pcfpfqtg-bce.html
http://www.zzbaike.com/wiki/CentOS/%E4%BD%BF%E7%94%A8tar%E5%A4%87%E4%BB%BD

后续继续更新。。。。。

centos备份与还原的更多相关文章

  1. ios – Xcode警告:“没有处理文件的规则”和“找不到目录”

    重命名我的项目文件夹后,我收到以下错误消息:什么可能出错?解决方法关于第一个警告,您可以在项目设置中的“构建阶段”中检查XCode,即头文件不会出现在“编译源”列表中.

  2. 你如何将xcode项目转换为cocoapod?

    我有一段代码,我发现我在多个不同的项目中重复使用,所以我想把它变成一个cocoapod并使用私人cocoapod仓库.我的问题是如何将xcode项目设置为cocoapod?它应该是一个静态库还是一个带有appdelegate的空“项目”?

  3. ios – 如何将文件添加到主包的/ Library / Sounds目录中?

    根据Apple’sdocumentation,/Library/Sounds中的声音文件将在尝试播放声音时由系统搜索.如何将声音文件添加到此文件夹?适用于iOS的正确文档应为here总之,您只需将声音文件作为应用程序包的非本地化资源添加到项目中.

  4. ios – 资产目录与文件夹参考:何时使用其中一个?

    我可以将文件放入Assets.xcassets,或者我可以将文件放入文件夹引用.我何时会选择一个而不是另一个?

  5. ios – 从icloud备份中限制sqlite-wal和sqlite-shm

    我是第一次使用coredata,我必须从文档目录中的iCloud备份限制sqlitedb文件,我使用下面的代码完成了它//阻止iCloud备份文档目录文件夹现在我不明白的是,我们还需要从icloud备份中限制sqlite-wal和sqlite-shm文件,如果是,那么如何从icloud备份限制sqlite-wal和sqlite-shm文件我想要一个解决方案,而无需从文档目录文件夹中更改sqlitedb位置…

  6. 对于NSManagedObject,Xcode 9构建了Date vs NSDate的问题

    Xcode9为模拟器与设备中的实体的Date类型属性生成不同的代码.我在coredata中将类设置为类别/扩展名下的codegen功能.直到Xcode8.3(最新)它一切正常.下面是Xcode9为属性自动生成的代码–在设备上:–和,在模拟器上:–有谁遇到过这个问题?对于一个有50个成员的项目来解决这个问题的最佳解决方案是什么,直到Xcode更新修复它?

  7. iOS兼容输入类型日期 – 设置最小值最大值

    我试图在UIWebViewiOS应用程序中使用jQueryMobile设置日期,值设置正确但最小和最大属性日期设置不起作用.和当我在模拟器上运行它时,当选择日期字段时,日期选择器可见,但未设置最小,最大日期.解决方法模拟器的safari不支持设置输入类型=“日期”的最小值和最大值.您可以通过导航到thissite并尝试控制来测试它.它(可能)可以在桌面浏览器上运行,但不会在模拟器的浏览器或UIWebView中运行.

  8. ios – 设置NSDataDetector的上下文日期

    假设今天是2014年1月20日.如果我使用NSDataDetector从“明天下午4点”字符串中提取日期,我将得到2014-01-21T16:00.大.但是,假设我希望NSDataDetector假装当前日期是2014年1月14日.这样,当我解析“明天下午4点”时,我将得到2014-01-15T16:00.如果我在设备上更改系统时间,我会得到我想要的.但是,有没有办法以编程方式指定它?

  9. ios – 如何自动生成日期属性为Date而不是NSDate的NSManagedObject子类?

    我目前正在将我的项目更新为Swift3,并且我将所有的NSDate方法和扩展都移动到Date以便在应用程序中保持标准.问题是我使用Xcode自动生成我的NSManagedobject子类,它生成日期属性为NSDate而不是Date.有没有办法用日期属性作为日期生成它?

  10. iOS:如何从文档目录中删除具有特定扩展名的所有现有文件?

    当我更新我的iOS应用程序时,我想删除Documents目录中的任何现有sqlite数据库.现在,在应用程序更新时,我将数据库从软件包复制到文档目录,并通过附加软件包版本来命名它.因此,在更新时,我还想删除可能存在的任何旧版本.我只是希望能够删除所有sqlite文件,而无需循环浏览并查找以前版本的文件.是否有任何方法可以对removeFileAtPath:方法进行通配符?解决方法那么,你想要删除所有*.sqlite文件?

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部