zoukankan      html  css  js  c++  java
  • 文件的元数据

    文件元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
    1、元数据定义:
    数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。元数据算是一种电子式目录,为了达到编制目录的目的,必须在描述并收藏数据的内容或特色,进而达成协助数据检索的目的
    元数据就是数据的数据。
    任何文件系统中的数据分为数据和元数据。数据是指普通文件中的实际数据,而元数据指用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有者以及文件数据块的分布信息(inode...)等等。在集群文件系统中,分布信息包括文件在磁盘上的位置以及磁盘在集群中的位置。用户需要操作一个文件必须首先得到它的元数据,才能定位到文件的位置并且得到文件的内容或相关属性。
    文件系统元数据(metadata)的更改都被保存在一份单独的日志里,当发生系统崩溃时可以根据日志正确地恢复数据。除此之外,日志使系统重新启动时不必进行文件系统的检查,从而缩短了恢复时间。
    2、元数据管理方式:
    元数据管理有两种方式:集中式管理和分布式管理
    集中式管理:是指在系统中有一个节点专门司职元数据管理,所有元数据都存储在该节点的存储设备上。所有客户端对文件的请求前,都要先对该元数据管理器请求元数据。
    分布式管理:是指将元数据存放在系统的任意节点并且能动态的迁移。对元数据管理的职责也分布到各个不同的节点上。
    大多数集群文件系统都采用集中式的元数据管理。因为集中式管理实现简单,一致性维护容易,在一定的操作频繁度内可以提供较满意的性能。缺点是单一失效点问题,若该服务器失效,整个系统将无法正常工作。而且,当对元数据的操作过于频繁时,集中的元数据管理成为整个系统的性能瓶颈。
    分布式元数据管理的好处是解决了集中式管理的单一失效点问题,而且性能不会随着操作频繁而出现瓶颈。其缺点是,实现复杂,一致性维护复杂,对性能有一定影响。
    文件的数据分为两类:一类为元数据,既属性数据;一种就是数据本身。
    可用命令stat查看文件的元数据
    stat:
    功能说明:显示inode内容。
    语  法:stat [文件或目录]
    补充说明:stat以文字的格式来显示inode的内容。
    ls 命令及其许多参数提供了一些非常有用的文件信息。另一个不太为人所熟知的命令 stat 提供了一些更为有用的信息。
    例:
    查看可执行文件“oracle”
    # stat oracle
    File: ‘oracle’
    Size: 93300148 Blocks:182424 IO Block:4096 Regular File
    Device: 343h/835d Inode: 12009652 Links: 1
    Access: (6751/-rwsr-s--x) Uid:( 500/ oracle) Gid:( 500/ dba)
    Access: 2006-08-04 04:30:52.000000000 -0400
    Modify: 2005-11-02 11:49:47.000000000 -0500
    Change: 2005-11-02 11:55:24.000000000 -0500
    使用该命令获得的信息:除了通常的文件大小(也可以使用 ls -l 命令获得)以外,您还获得了该文件占用的块数。通常的 Linux 块大小为 512 字节,因此一个大小为 93,300,148 字节的文件将占用 (93300148/512=) 182226.85 个块。由于块都是完整占用,因此该文件使用了一些整数个数的块。无需猜测就可以获得确切的块数

    stat 命令的修改符 -f 显示了有关文件系统(而非文件)的信息:
    # stat -f oracle
    File: "oracle"
    ID: 0 Namelen:255 Type:ext2/ext3
    Blocks: Total: 24033242 Free: 15419301 Available: 14198462 Size: 4096
    Inodes: Total: 12222464 Free: 12093976

    另一个选项 -t 显示了完全相同的信息,只不过是在一行中显示的:
    # stat -t oracle
    oracle 93300148 182424 8de9 500 500 343 12009652 1 0 0 1154682061
    1130950187 1130950524 4096

    修改文件时间戳信息
    命令:touch
    touch命令一般用来修改文件的时间,或者新建一个不存在的文件.
    语法如下: touch [-acm][-r ref_file(参照文件)|-t time(时间值)] file(文件名)
    例子:
    touch file1.txt 更新file1.txt的存取和修改时间
    touch -c file1.txt 如果file1.txt不存在,不创建文件
    touch -r ref_file file1.txt 更新file1.txt的时间戳和ref+file相同
    touch -t 0911252234.40 file1.txt 设定文件的时间为09年11月25日22点34分40秒
    参数说明:
    -a 修改文件 file 的存取时间.
    -c 不创建文件 file.
    -m 修改文件 file 的修改时间
    -r ref_file 将参照文件 ref_file 相应的时间戳记的数值作为指定文件 file 时间戳记的新值.
    -t time 使用指定的时间值 time 作为指定文件 file 相应时间戳记的新值.
    此处的 time 规定为如下形式的十进制数∶ [[CC]YY]MMDDhhmm[.SS] 这里,CC为年数中的前两位,即”世纪数”;YY为年数的后两位,即某世纪中的年数.如果不给出CC的值,则touch 将把年数CCYY限定在1969--2068之内.MM为月数,DD为天将把年数CCYY限定在1969--2068之内.MM为月数,DD为天数,hh 为小时数(几点),mm为分钟数,SS为秒数.此处秒的设定范围是0--61,这样可以处理闰秒.这些数字组成的时间是环境变量TZ指定的时区中的一个时 间.由于系统的限制,早于1970年1月1日的时间是错误的.
    使用touch可以一次创建多个文件:
    # touch myfile01 myfile02 myfile03
    #touch myfile0{1,2,3} 创建myfile01 myfile02 myfile03 三个文件

  • 相关阅读:
    IE6 兼容问题总结
    WPF 带CheckBox、图标的TreeView
    Fast Report Data Filter
    【转】NHibernate入门教程
    【转】Spring.NET学习笔记——目录
    【转】.Net中通过反射技术的应用----插件程序的开发入门
    【转】ASP.NET常用数据绑定控件优劣总结
    【转】通用分页用户控件(DataGrid,DataList,Repeater都可以用它来分页)
    【转】ASP.NET MVC教程
    【转】设计模式介绍
  • 原文地址:https://www.cnblogs.com/XWShuai/p/5936531.html
Copyright © 2011-2022 走看看