Linux 文件系统inode号和备份恢复

目录

一、inode原理

二、时间类型

三、inode号管理

四、inode实验

五、备份恢复

 七、备份实验

 

 

 

 

 

 

 

 

 

 

一、inode原理

  inode只有一个,唯一的,一个文件必须占用一个inode号,但是至少占用一个数据块(数据不足一个数据块,也是占用一个数据块)

  inode记录:元信息,权限,字节数,所有组,所有组,时间

 

二、时间类型

  atime:使用都会修改时间

  mtime:修改数据内容,空文件修改内容并且保存内容,inode都会改变

  ctime:修改权限和属性

  inode:xfs文件有容错机制(inode满了还可以继续创建,数量不等)

 

三、inode号管理

  1.查看inode号

  ls -i 查看当前目录文件的inode号

   ls -i +文件:查看文件inode号

 

stat /data指定文件夹的inode号

     df -i查看挂载点的inode号

    2.删除inode号

    使用inode号删除指定文件夹

    先查看文件夹的inode号,再使用find -inum inode号 -delete将文件夹删除  

   3.修改inode号

    将一个文件移动到另一个地方,不改变inode号

    先使用ls -i查看test1.txt文件的inode号

     再将test1.txt文件移动到opt目录下

     可以看到test1.txt inode号依然没有改变

     就算时改变文件名字inode也不会改变

   

四、inode实验

  模拟:inode满了但是还是可以创建

  

磁盘分区

 

 

 

格式化

 

 

创建文件夹,将sdd1挂载到该文件夹

 

 

查看inode号有8192个      

 

创建8189个文件,虽然inode号有8192,还可以多创建63个

 

   

五、备份恢复

  全量备份:将文件内容进行备份

  增量备份:将文件新加入的内容,全量备份以外的内容备份

  

  备份命令:xfsdump

        1.只能备份已挂载的文件系统

        2.必须使用root权限才能操作

        3.只能备份xfs文件系统

        4.备份后的数据只能用xfsrestore解析

        5.不能备份两个相同uuid号的文件系统(blkid查看)

 

七、备份实验

  创建分区 

 

 格式化

 

挂载

          查看是否有xfsdump程序

 

创建文件123 234 345

将1 2 3分别写入三个文件

 

 

备份

 

删除xc文件夹所有文件

还原备份

 还原成功 

 

还原备份成功

文件内容正确

  

 

 

 

创建111 222

 

备份成功

 

 删除所有

  

  还原一下,还原成功

 

 

 

 

本文转载于网络 如有侵权请联系删除

相关文章

  • Arch Linux 安装指南

    1.前提为什么推荐ArchLinux?因为它好用呗!如果想要学习Linux,ArchLinux是个很好的选择。ArchLinux提供了非常详细并且更新及时的Wiki(帮助文档),使用系统的过程中遇到的问题基本上都空余从上面找到。ArchLinux采取滚动更新的方式,一旦系统或者软件有新版本发布,你就可以升级它们。你的系统以及软件始终处在最新的状态,因此系统不存在发布新系统而要重装的问题。但ArchLinux安装比较繁琐,整个安装过程都在命令行下执行,这也是很多人觉得它很难安装的原因。其实安装并不难,步骤繁琐是真的,只要你有耐心,这都没问题。一旦你从头到尾安装完毕,你就掌握了许多基本的知识,比如分区的创建与挂载、系统引导安装、配置软件源等,这些对于学习Linux来说是好事。如果你只是体验以下Linux,不想深入它,或者想要一个开箱即用的生产环境,那么我推荐UbuntuLTS。如果是作为需要非常稳定的服务器,我推荐Debian和CentOS。1.1非常重要:为了你的数据安全,如果你没有任何ArchLinux的安装经验,或者不具备基本的Linux基础,我不建议你直接在已有数据的硬盘上执行本教

  • 一天一个 Linux 命令(14):head 命令

    本文为joshua317原创文章,转载请注明:转载自joshua317博客https://www.joshua317.com/article/136一、简介head就像它的名字一样的浅显易懂,它是用来查看文件的开头部分的内容二、格式说明head[OPTION]...[FILE]... head[参数]...[文件]... Usage:head[OPTION]...[FILE]... Printthefirst10linesofeachFILEtostandardoutput. WithmorethanoneFILE,precedeeachwithaheadergivingthefilename. WithnoFILE,orwhenFILEis-,readstandardinput. Mandatoryargumentstolongoptionsaremandatoryforshortoptionstoo. -c,--bytes=[-]KprintthefirstKbytesofeachfile; withtheleading'-',printallbutthel

  • [PHP] laravel框架注意bootstrap/cache

    当我新下载的框架,accesslog日志中间件并不能准确记录到指定文件里总是提示access没有定义按照文档config/logging.php里面,默认肯定是定义了的'access'=>[ 'driver'=>'daily', 'path'=>storage_path('logs/access/access.log'), 'level'=>env('LOG_LEVEL','error'), 'tap'=>[App\Logging\LogFormatter::class], 'days'=>14, 'permission'=>0666 ],复制原因就在于bootstrap/cache/config.php这个缓存没有更新删掉就能正常记录日志了

  • 通过伯努利抽样进行隐私放大

    平衡隐私和准确性是设计差异化隐私机器学习算法的主要挑战。为了改善这种权衡,之前的工作研究了隐私放大的方法,这些方法分析了常见的训练操作,如迭代和对数据进行子采样,可以导致更高的隐私。在本文中,我们分析了在贝叶斯推理中使用的新操作——从后验中取样的隐私放大特性。特别是,我们研究了来自后验的Bernoulli抽样,该后验是由不同的隐私参数描述的。我们提供了一种算法来计算这种情况下的放大系数,并建立了这个系数的上限和下限。最后,我们研究了当我们抽取k个后验样本而不是一个后验样本时会发生什么。原文题目:PrivacyAmplificationViaBernoulliSampling原文:Balancingprivacyandaccuracyisamajorchallengeindesigningdifferentiallyprivatemachinelearningalgorithms.Toimprovethistradeoff,priorworkhaslookedatprivacyamplificationmethodswhichanalyzehowcommontrainingoperati

  • 线性代数整理(二)正交性,标准正交矩阵和投影坐标转换和线性变换

    单从一个矩阵来看,我们可以发现该矩阵的列秩和行秩是相等的,都为2,那么这是一个特例还是矩阵的特性呢?其实这是矩阵的特性,矩阵的行秩=矩阵的列秩。我们来看一个任意m行n列的矩阵其实不论矩阵是什么样子,都可以将矩阵转换成如下的形式这个样子中,在中间的横线下面都是行最简形式的零行;横线上面都是行最简形式的非零行;横线上方的左边是一个单位矩阵,其实也是主元列;横线上方的右边是一个任意矩阵,其实也是自由列。那为什么我们之前的例子并不是这个样子呢?首先,这确实是化成了行最简形式,但对于这个行最简形式要变成我们需要的样子还需要进行一个列变换,将2、3列交换位置,这样就变成了我们需要的样子。这里的关键是左上角是一个单位矩阵,我们假定它有r行、r列(r表示行秩或列秩)。通过这个单位矩阵,我们可以看出该矩阵的非零行数一定等于它的主元列数,都排在了这个单位矩阵中。最终任意矩阵都可以化成这个样式其中I是单位矩阵,F是自由列矩阵,O是零矩阵。由于矩阵的行秩一定等于矩阵的列秩,它们都是一个数,我们称这个数为矩阵的秩(Rank)。对于任意一个矩阵,它的行空间和列空间的维度相等。现在有3个向量,u=(1,1,2),v

  • go mod使用

    最近由于换工作,开始交接工作。整理以前的工作内容,由于组内就我一个在做go和大数据。所以开发没有规划,当时是怎么快怎么来。go也是使用最传统的gopath的方式管理的。都是手动管理依赖的。现在交接给他人,需要多人开发,发现很多问题。比如版本问题,各种依赖的问题等等。由于工作原因,几乎所有主流语言都写过。所以,对应语言包管理工具也都了解和使用过。我前面有写过maven的使用。 maven是使用过的功能最强大的包管理工具了,maven定位是项目管理工具。pip和npm都是及格的产品。我个人觉得,一个包管理工具应该有以下功能: 基本功能依赖管理依赖包版本控制对应的包管理平台可以私有化部署加分:代码包是否可以复用构建,测试,打包发布上线对比上面几点: 目前做的最好的也就maven了,gradle没有使用过,不知道。今天主角是gomod,先来谈谈没有使用gomod之前的问题。使用gopath问题代码开发必须在gopathsrc目录下,不然,就有问题。依赖手动管理依赖包没有版本可言从这个看,gopath不算包管理工具govendor解决了包依赖,一个配置文件就管理依赖包全都下载到项目vendor下

  • 小白Linux入门--入门篇(四):查看Linux版本信息

    前言很多时候,我们需要下载软件的时候,必须要知道我们使用的Linux系统是什么版本,32还是64位等等,可以使用最简单的命令查看:uname-a当然还有其他命令可以查看更详细的信息,见下文.Linux下如何查看版本信息,包括位数、版本信息以及CPU内核信息、CPU具体型号等等,整个CPU信息一目了然。  1、#uname-a(Linux查看版本当前操作系统内核信息)Linuxhao-PC4.15.0-21deepin-generic#21SMPMonMay2105:20:09UTC2018x86_64GNU/Linux  2、#cat/proc/version(Linux查看当前操作系统版本信息)Linuxversion4.15.0-21deepin-generic(pbuilder@gs-PC)(gccversion7.2.0(Debian7.2.0-20))#21SMPMonMay2105:20:09UTC2018这个和uname-a大同小异  3、#cat/etc/issue或cat/etc/redhat-release(Linux查看版本当前操作系统发行版信息)DeepinGN

  • 树与二叉树的深度优先与广度优先算法(递归与非递归)

    本博客前面文章已对树与二叉树有过简单的介绍,本文主要是重点介绍有关二叉树的一些具体操作与应用阅读本文前,可以先参考本博客各种基本算法实现小结(三)——树与二叉树 和 各种基本算法实现小结(二)——堆栈二叉树深度层数、叶子数、节点数和广度优先算法以及树的先序、中序、后序的递归与非递归(深度优先)测试环境:VS2008(C)#include"stdafx.h" #include<stdlib.h> #include<malloc.h> #defineDataTypechar intd_tree=0;/*tree'sdepth*/ intl_tree=0;/*tree'sleaf*/ intn_tree=0;/*tree'snode*/ /**************************************/ /********树的结构定义********/ /**************************************/ struct_tree { DataTypedata; struct

  • ZOJ 3203 Light Bulb

    Comparedtowildleopard'swealthiness,hisbrothermildleopardisratherpoor.Hishouseisnarrowandhehasonlyonelightbulbinhishouse.Everynight,heiswanderinginhisincommodioushouse,thinkingofhowtoearnmoremoney.Oneday,hefoundthatthelengthofhisshadowwaschangingfromtimetotimewhilewalkingbetweenthelightbulbandthewallofhishouse.Asuddenthoughtranthroughhismindandhewantedtoknowthemaximumlengthofhisshadow.InputThefirstlineoftheinputcontainsaninteger T (T <=100),indicatingthenumberofcases.Eachtestcasecontainst

  • 【学习】《R实战》读书笔记(第四章)

    读书会是一种在于拓展视野、宏观思维、知识交流、提升生活的活动。PPV课R语言读书会以“学习、分享、进步”为宗旨,通过成员协作完成R语言专业书籍的精读和分享,达到学习和研究R语言的目的。读书会由辅导老师或者读书会成员推荐书籍,经过讨论确定要读的书,每个月读一本书且要精读,大家一起分享。第四章基本数据管理本章概要1操作数据和缺失值。2明白数据类型转换3创建和重命名变量4排序、合并和子数据集5选择和删除变量本章所介绍内容概括如下。把数据导入矩阵或者数据框仅是数据分析准备的第一步,花在数据分析的60%的时间用在为分析所做的数据准备。一个工作例子案例:研究男女管理者领导他们组织的差异。数据集(数值5、4、3、2和1分别表示强烈反对、反对、中立、支持、强烈支持)如图1所示。图1:不同性别的领导行为如何把图1的中数据导入R,对这些数据,我们有什么发现呢?创建新的变量一些场景,我们需要创建新的变量,形式如下:newvariable<-expression算术运算如图2所示。图2:R算术运算符号举例说明如下>rm(list=ls())>10+3[1]13>10-3[1]7>

  • 士兵站队问题

    士兵站队问题【问题描述】      在一个划分成网格的操场上,n个士兵散乱地站在网格点上。网格点由整数坐标(x,y)表示。士兵们可以沿网格边上、下、左、右移动一步,但在同一时刻任一网格点上只能有一名士兵。按照军官的命令,士兵们要整齐地列成一个水平队列,即排列成(x,y),(x+1,y),…,(x+n-1,y)。如何选择x和y的值才能使士兵们以最少的总移动步数排成一列。【编程任务】      计算使所有士兵排成一行需要的最少移动步数。【输入格式】      由文件sol.in提供输入数据。文件的第1行是士兵数n,1≤n≤10000。接下来n行是士兵的初始位置,每行2个整数x和y,-10000≤x,y≤10000。【输出格式】      程序运行结束时,将计算结果输出到文件sol.out中。文件的第1行中的数是士兵排成一行需要的最少移动步数。【输入样例】51222133-2331#include<iostream> 2#include<algorithm> 3#include<cmath> 4usingnamespacestd; 5inttot; 6in

  • DeepLearning.ai学习笔记(三)结构化机器学习项目--week2机器学习策略(2)

    一、进行误差分析很多时候我们发现训练出来的模型有误差后,就会一股脑的想着法子去减少误差。想法固然好,但是有点headlong~ 这节视频中吴大大介绍了一个比较科学的方法,具体的看下面的例子 还是以猫分类器为例,假设我们的模型表现的还不错,但是依旧存在误差,预测后错误标记的数据中有一部分狗图片被错误的标记成了猫。这个时候按照一般的思路可能是想通过训练出狗分类器模型来提高猫分类器,或者其他的办法,反正就是要让分类器更好地区分狗和猫。但是现在的问题是,假如错误分类的100个样本中,只有5个狗样本被错误的标记成了猫,那么你费尽千辛万苦也最多只能提高一丢丢的准确度。所以对误差进行分析就显得比较重要,而且可以帮助我们在未来的工作中指明优化方向,节省时间。具体的方法按吴大大的说法是可以人工的对错误标记的样本进行再处理、分析。下面以一个例子来介绍一下操作步骤1.人工标记 将错误标记样本以表格的形式列举出来,然后人工的标记处样本的分类,最后统计出各种分类(或者说错误标记的原因)所占比例。ImageDogGreatcats(大型猫科动物,如狮子)Blurry(图片模糊)Comments1√2√眯着眼3√√

  • kotlin compose 升级的苦涩 | 一地鸡毛

    theme:smartblue前言年中的时候一直有开发同学反馈想升级各个基础库的版本,而且我们也有每年一调整的计划,所以前一阵子就顺便一起做了一次升级迭代基础库的操作。这里我就是想吐槽下,安卓开发体系实在是过于臃肿了,明明就是几个官方库升级的操作,没想到竟然会互相影响。真实的让人害怕!Kotlin1.7.0正式发布!主要新特性一览 kotlin升级引出来的一堆问题我们master的kotlin版本是1.5.31,开发同学打算升级的版本是1.6.21,而kotlin官方最新版本是1.7.10,我想了想直接干最新的啊,一步到位岂不是美滋滋。另外开发同学的另一个诉求是升级compose的基础依赖的,由于低版本的存在一个bug,必须升级版本才能修复。之前文章也介绍过compose的一部分实现原理是基于kcp的,那么也就导致了composecompiler和kotlin版本强绑定在一起。所以就必然要让这两个的版本升级放在一起才行。而在compose的升级过程中,因为kotlin最新版本刚刚完成发布,所以composecompiler还没有完成1.7.10的适配,只能被迫使用1.7.0的kotli

  • DFT 视频学习笔记: 第一 introduction

    第一 introductiontoDFT 一,功能测试与结构测试的区别 二,IC设计流程    1,RTL设计->  2,功能验证->3,逻辑设计,逻辑验证-> 4,DFT设计-> 5,逻辑综合,物理版图 ->6,流片 三,工具对应的过程  DC   逻辑综合 scaninsertion testcompression;logicinsertion Primetime(PT) Timingsignoff ICC PRTOOL Teramax atpgtool VCS/Verdi tessentshell dftadviser scaninsersion Fastscan atpgtool Testkompress MBISTJTAG tessentMbist calibre DRC/LVS Olympus PRTOOL  

  • npm 安装 electron 超时

    由于某些不可描述的原因,俺的某个小项目要用客户端桌面应用,后台那还是php了。经广大的群友指导,发现了Electron这个项目。它可以用html,css,javascript构建跨平台的桌面应用程序,基于nodejs实现。   问题 然而在安装Electron时,卡死在了npminstall的过程里。先升级node和npm到最新版,然后7个npm源换了一圈,结果没一个能下载下来的。无奈试试谷歌“npmelectron安装超时”,找到一篇,解决了问题。   解决 在用户目录的.npmrc文件里添加一行 electron_mirror=https://npm.taobao.org/mirrors/electron/复制 指定Electron二进制文件的国内镜像(上面路径里最后一个正斜杠"/"别丢了)。   2018-04-1605:43:15更新: 来自官方的文档,指明了Electron二进制文件的国内镜像:   参考链接 eletron安装卡在nodeinstall.js electron-download

  • &lt;王川自选集第一卷电子书 &gt;读书笔记

    什么叫限定自己能力的边界?就是接受承认一个事实,世界上大多数东西你并不懂,或者一知半解,懂得很肤浅。只有少数东西,由于你可以天天深入的接触,你才有深刻的理解。 购买一个公司的股票,却从未使用其核心产品,这是十分危险的 能力的边界是动态的,是你要主动学习观察获取的。留心身边常常接触到的各类事物,多看一眼,多走一步,多问一句,不预设立场,往往会有意想不到的收获 当你赚钱时,你往往并不忙碌;当你奋力工作(为提高短期回报)时,你往往对自己的回报业绩感到愤怒 人们对于金融资产的定价存在一种认识偏差,叫做定锚偏差,如果股票下跌,无论原因,许多人就会本能地认为便宜,而去抢购 成长,公司营收和利润迅速的增长,才是股票投资的王道 公司所在的行业必须是个迅速成长的市场,这是大局 没有人可以对抗大局,如果行业没有迅速成长,任何高明的管理人也无法力挽狂澜 管理领导团队极为重要,人是最重要的因素 如果你可以用简单直接的方式投资获利,就不要用复杂费力的方式去投资 如果你做的事大方向是对的,尽管小处有失误有曲折,完全没有关系。但如果你在一个夕阳产业或者增长缓慢的企业,大方向不利于你,不管你如何勤奋,都是在白费力

  • 查询学习

    1.查询json学习 { "bool":{ "must":[ { "term":{ "yn":{ "value":1, "boost":1#权重是1 } } }, { "terms":{ "ware_info_id":[ "lw_770_421", "lw_770_979", "lw_4_589", "lw_650_927", "666", "lw_3_106", "lw_3_238", "lw_3_429", "lw_3_365", "lw_3_270", "lw_3_350", "lw_3_744", "lw_3_267", "lw_3_725", "lw_3_420", "lw_4_992", "lw_4_327", "lw_4_204", "lw_4_975", "lw_4_915", "lw_4_797", "lw_688_333", "lw_688_875", "lw_688_122", "lw_688_205", "lw_611_581", "lw_611_414", "lw_611_617", "lw_611_229", "lw_600_35", "lw_600_606

  • 跳转_01

    1、 JS(jumpifsign),汇编语言中的条件转移指令。结果为负则转移。 其他指令参加下表: —————————————————————————————————— 名称功能操作数操作码模数寄存器1寄存器2 或内存位移量立即数符号方向芯片 型号16位32位 JO溢出跳转短$70无无无无10无无8086无无 JNO不溢出跳转短$71无无无无10无无8086无无 JB低于跳转短$72无无无无10无无8086无无 JNB不低于跳转短$73无无无无10无无8086无无 JE相等跳转短$74无无无无10无无8086无无 JNE不等跳转短$75无无无无10无无8086无无 JBE不高于跳转短$76无无无无10无无8086无无 JA高于跳转短$77无无无无10无无8086无无 JS负号跳转短$78无无无无10无无8086无无 JNS非负跳转短$79无无无无10无无8086无无 JP奇偶跳转短$7A无无无无10无无8086无无 JNP非奇偶跳转短$7B无无无无10无无8086无无 JL小于跳转短$7C无无无无10无无8086无无 JNL不小于跳转短$7D无无无无10无无8086无无 JNG不大于

  • Python-Day1编写登陆接口

    流程图:   Code: 1#Author:PJJ 2#新建两个文件,一个叫user_lock.txt一个叫user.txt,在user.txt中输入用户名和密码如:pjj123如果需多个用户,请输入完一个用户后 3#回车输入第二个用户 4count=0 5whilecount<3: 6username=input("请输入用户名:") 7f1=open('user_lock.txt','r+') 8lock_list=f1.readlines() 9 10forlock_userinlock_list: 11lock_user=lock_user.strip('\n') 12ifusername==lock_user: 13print("用户%s已经进入黑名单.程序退出"%username) 14exit() 15f2=open("user.txt","r") 16file_list=f2.readlines() 17forlineinfile_list: 18user,pwd=line.strip("\n").split() 19 20ifusername==u

  • java: private, protected, public

    这三个「可访问修饰符」,是一个老生常谈的话题了。在C++中也有类似的概念。 按其修饰对象的不同,分为几种用法小记一下: 用于类 只有public可以修饰类;private和protected不能修饰类。 使用public修饰的类,可以被其它「包」中的类访问。 不使用public修饰的类(也就是没有修饰符),只能被同一个「包」内的类访问。 用于类的成员 private修饰的成员,只能被在类内部使用,不能在类外部访问。 无修饰符的成员,只允许被同一包内的类访问。 protected修饰的成员,允许被同一包内的类访问,还允许被子类使用。 public修饰的成员,允许任意类访问。 这里描述的边界有三个: 类内和类外 包内和包外 是否是子类

  • 计算机系统结构总结_Memory Review

    这次就边学边总结吧,不等到最后啦 Textbook: 《计算机组成与设计——硬件/软件接口》   HI 《计算机体系结构——量化研究方法》        QR Ch3.MemoryHierarchy 1.PhysicalMemory SRAM:CPU缓存(比如PentiumII的外置二级缓存芯片) DRAM:内存芯片,需要Dynamic刷新。关于DRAM的详细介绍在这里。   2.Locality(PPTP12/HIP253) Programstendtoreusedataandinstructionsnearthosetheyhaveusedrecently,orthatwererecentlyreferencedthemselves. Temporallocality:Recentlyreferenceditemsarelikelytobereferencedinthenearfuture. Spatiallocality:Itemswithnearbyaddressestendtoberefere

相关推荐

推荐阅读