免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2504 | 回复: 10
打印 上一主题 下一主题

[系统管理] 能否用命令查看文件占用了哪几个块 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-06-05 11:39 |只看该作者 |倒序浏览
小弟想知道linux 某个文件位于哪几个块
小弟有兴趣了解这个文件在刚开始创建时占用了哪些块
过段时间文件被修改后,又占用了哪些块

1. [root@server01 ~]# stat /etc/aliases
  File: ‘/etc/aliases’
  Size: 1518            Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 8388767     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_ubject_r:etc_aliases_t:s0
Access: 2015-06-04 23:04:30.055353492 -0400
Modify: 2013-06-07 10:31:32.000000000 -0400
Change: 2015-06-04 22:58:19.431835990 -0400
Birth: -

这个命令显示的结果有点叫人困惑
/etc/aliases的大小为1518个字节,而linux文件系统的块大小为4096KB
按理说这个文件只占用1个块

但Blocks:8,却显示占用了8个块

2.小弟的linux安装在虚拟机,安装系统时选择了lvm,逻辑卷被建立成xfs文件系统
tune2fs这个命令可以查看ext3 文件系统,不支持xfs文件系统
请问是否有其它的命令可以查看xfs文件系统

[root@server01 ~]# blkid
/dev/sda1: UUID="cadfdf30-f60a-4fd5-81a3-5af6c0541707" TYPE="xfs"
/dev/sda2: UUID="hVU7A2-7AxW-SGA3-jr2a-Xwez-AqHM-H7oBJq" TYPE="LVM2_member"
/dev/sdb1: UUID="4f8d214e-69c9-492d-8a5c-7a9f3aa37803" SEC_TYPE="ext2" TYPE="ext3"
/dev/mapper/centos-root: UUID="2e74d07b-98de-4355-8811-ac8bc3b53f3d" TYPE="xfs"
/dev/mapper/centos-swap: UUID="6d5001d8-02cd-407b-b3d8-26ee48245a71" TYPE="swap"


[root@server01 ~]# tune2fs -l /dev/sdb1 | grep block
Reserved block count:     104844
Free blocks:              2026576
First block:              0
Reserved GDT blocks:      511
Inode blocks per group:   512
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
Journal backup:           inode blocks




论坛徽章:
9
寅虎
日期:2013-12-02 12:49:22巨蟹座
日期:2014-07-18 18:13:34卯兔
日期:2014-07-25 14:43:08子鼠
日期:2014-07-26 10:10:51酉鸡
日期:2014-07-31 15:09:562015亚冠之本尤德科
日期:2015-05-19 09:27:382015亚冠之卡尔希纳萨夫
日期:2015-06-20 10:30:212015亚冠之阿尔纳斯尔
日期:2015-07-01 20:46:062015亚冠之城南
日期:2015-07-15 21:12:00
2 [报告]
发表于 2015-06-05 14:53 |只看该作者
那个blocks貌似是物理块大小
  1. test@ubuntu:~/test$ stat -c '%b' /etc/aliases
  2. 8
  3. test@ubuntu:~/test$ stat -c '%B' /etc/aliases
  4. 512
复制代码
%b     number of blocks allocated (see %B)
%B     the size in bytes of each block reported by %b

xfs可以用xfs_info

论坛徽章:
0
3 [报告]
发表于 2015-06-05 15:56 |只看该作者
lifayi2008 发表于 2015-06-05 14:53
那个blocks貌似是物理块大小%b     number of blocks allocated (see %B)
%B     the size in bytes of ea ...


多谢大哥的指点,
越来越不明白了,/etc/aliases才占用了1000多个字节,按理说,只会占用1个块
那为什么后来分配了8个块。

小弟用dd命令创建一个大文件之前和之后分别使用tune2fs命令查看可用的block数量
发现这个数量没有变化。

[root@server01 sdb1]# tune2fs -l /dev/sdb1 | grep -i 'free block'
Free blocks:              2026576
[root@server01 sdb1]# sync
[root@server01 sdb1]# dd if=/dev/zero of=aa.file count=100 bs=1024KB
100+0 records in
100+0 records out
102400000 bytes (102 MB) copied, 0.187623 s, 546 MB/s
[root@server01 sdb1]# sync
[root@server01 sdb1]# tune2fs -l /dev/sdb1 | grep -i 'free block'
Free blocks:              2026576

难道查看文件系统剩余的block数量不是使用这个命令吗?

论坛徽章:
9
寅虎
日期:2013-12-02 12:49:22巨蟹座
日期:2014-07-18 18:13:34卯兔
日期:2014-07-25 14:43:08子鼠
日期:2014-07-26 10:10:51酉鸡
日期:2014-07-31 15:09:562015亚冠之本尤德科
日期:2015-05-19 09:27:382015亚冠之卡尔希纳萨夫
日期:2015-06-20 10:30:212015亚冠之阿尔纳斯尔
日期:2015-07-01 20:46:062015亚冠之城南
日期:2015-07-15 21:12:00
4 [报告]
发表于 2015-06-05 17:03 |只看该作者
你没仔细看亲, stat的man page中说明 一个blocks的大小是512字节  8个正好4096字节   你的逻辑块也是4096   一个文件至少要占用一个逻辑块回复 3# byrand1984


   

论坛徽章:
9
寅虎
日期:2013-12-02 12:49:22巨蟹座
日期:2014-07-18 18:13:34卯兔
日期:2014-07-25 14:43:08子鼠
日期:2014-07-26 10:10:51酉鸡
日期:2014-07-31 15:09:562015亚冠之本尤德科
日期:2015-05-19 09:27:382015亚冠之卡尔希纳萨夫
日期:2015-06-20 10:30:212015亚冠之阿尔纳斯尔
日期:2015-07-01 20:46:062015亚冠之城南
日期:2015-07-15 21:12:00
5 [报告]
发表于 2015-06-05 17:17 |只看该作者
第二个问题 我这也测试了一下 重启后Free Block和 Free Inode就变了
猜测可能是命令直接读硬盘的数据,而创建文件后内核只是改写了内存中的数据一直到经过某个时间后才会将数据写入硬盘
期待大神解惑回复 3# byrand1984


   

论坛徽章:
0
6 [报告]
发表于 2015-06-05 17:39 |只看该作者
lifayi2008 发表于 2015-06-05 17:03
你没仔细看亲, stat的man page中说明 一个blocks的大小是512字节  8个正好4096字节   你的逻辑块也是4096  ...


原来如此,看混淆了

1个block等于512字节,如果用sector表示就不这么让人困惑了

之前认为逻辑块大小就是用block表示

大哥,再麻烦你下

有没有其它的命令可以查看一个文件被写入了哪些逻辑块中
比如是占用了13 15 17 这3个逻辑块

论坛徽章:
0
7 [报告]
发表于 2015-06-05 17:40 |只看该作者
lifayi2008 发表于 2015-06-05 17:17
第二个问题 我这也测试了一下 重启后Free Block和 Free Inode就变了
猜测可能是命令直接读硬盘的数据,而创 ...


感谢你的用心。

论坛徽章:
9
寅虎
日期:2013-12-02 12:49:22巨蟹座
日期:2014-07-18 18:13:34卯兔
日期:2014-07-25 14:43:08子鼠
日期:2014-07-26 10:10:51酉鸡
日期:2014-07-31 15:09:562015亚冠之本尤德科
日期:2015-05-19 09:27:382015亚冠之卡尔希纳萨夫
日期:2015-06-20 10:30:212015亚冠之阿尔纳斯尔
日期:2015-07-01 20:46:062015亚冠之城南
日期:2015-07-15 21:12:00
8 [报告]
发表于 2015-06-05 17:49 |只看该作者
命令不知道,个人感觉没太大意义,如果想分析的话可以参照这个链接http://blog.chinaunix.net/uid-24774106-id-3266816.html回复 6# byrand1984


   

论坛徽章:
0
9 [报告]
发表于 2015-06-05 17:53 |只看该作者
byrand1984 发表于 2015-06-05 17:39
原来如此,看混淆了

1个block等于512字节,如果用sector表示就不这么让人困惑了


好像不对呀

/etc/aliases文件的大小是1518个字节,而它却占用了8个block

512*3=1536 应该是占用3个block就足够了

论坛徽章:
0
10 [报告]
发表于 2015-06-05 17:55 |只看该作者
回复 8# lifayi2008

请看9楼的回复。


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP