查看Linux磁盘块大小-阿里云开发者社区

开发者社区> 科技探索者> 正文

查看Linux磁盘块大小

简介:
+关注继续查看

1、用 du 命令结合文件大小判断,封装成Python代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#encoding: utf-8                                                   
#author: walker                                                    
#date: 2017-04-13                                                  
#summary: 获取文件所在磁盘块大小                                   
#sys.version: 2.7.6 (default, Mar 22 2014, 22:59:56) \n[GCC 4.8.2] 
                                                                    
import os                                                          
import math                                                        
                                                                    
#获取文件所在磁盘块大小                                            
#参数为:大于0B,没有空洞(hole)的文件                              
#返回值:若正常,返回块大小;否则,返回-1                          
def GetBlockSize(pathfile):                                        
    fileSize = os.path.getsize(pathfile)                           
    print('%s fileSize:%d' % (pathfile, fileSize))                 
    if fileSize < 1:                                               
        return -1                                                  
                                                                    
    blockSize = 512                                                
    for in range(110):                                         
        cmd = 'du -B %d %s' % (blockSize, pathfile)                
        print('cmd:%s' % cmd)                                      
        outText = os.popen(cmd).read()                             
        num = int(outText.split('\t')[0])                          
        print('num:%d' % num)                                      
        if math.ceil(1.0*fileSize/blockSize) == num:               
            break                                                  
        blockSize *= 2                                             
                                                                    
    return blockSize

2、用 tune2fs 结合 df 命令判断,示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
walker@walker-vm:~/apuedf -hT
文件系统                        类型      容量  已用  可用 已用% 挂载点
/dev/mapper/walker--vm--vg-root ext4       18G  2.5G   14G   16% /
none                            tmpfs     4.0K     0  4.0K    0% /sys/fs/cgroup
udev                            devtmpfs  987M  4.0K  987M    1% /dev
tmpfs                           tmpfs     200M  616K  199M    1% /run
none                            tmpfs     5.0M     0  5.0M    0% /run/lock
none                            tmpfs     998M     0  998M    0% /run/shm
none                            tmpfs     100M     0  100M    0% /run/user
/dev/sda1                       ext2      236M   37M  187M   17% /boot
walker@walker-vm:~/apuesudo tune2fs -l /dev/mapper/walker--vm--vg-root grep Block
Block count:              4651008
Block size:               4096
Blocks per group:         32768


相关阅读:

1、Linux 下统计文件夹大小及文件数量

2、(网络)文件拷贝(Windows/Linux)


*** walker ***

本文转自walker snapshot博客51CTO博客,原文链接http://blog.51cto.com/walkerqt/1915596如需转载请自行联系原作者

RQSLT

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux下查看某目录或指定文件大小的命令
du -sh 文件或目录名   用法:du [选项]... [文件]...   总结每个的磁盘用量,目录则取总用量。   长选项必须用的参数在使用短选项时也是必须的。   -a, --all write counts for all files, not just directories ...
419 0
用SQL命令查看Mysql数据库大小
用SQL命令查看Mysql数据库大小 除了可以直接进入后台查看数据文件大小,可以用SQL命令查看Mysql数据库大小 1、进入information_schema 数据库(存放其他的数据库的信息的数据库)  mysql> show databases; +--...
657 0
linux查看内存大小
查看服务器内存:grep MemTotal /proc/meminfo
14 0
du 使用详解 linux查看目录大小 linux统计目录大小并排序 查看目录下所有一级子目录文件夹大小 du -h --max-depth=1 |grep [
常用命令 du -h --max-depth=1 |grep [TG] |sort   #查找上G和T的目录并排序 du -sh    #统计当前目录的大小,以直观方式展现   du -h --max-depth=1 |grep 'G' |sort   #查看上G目录并排序 du -sh ...
2881 0
在AIX中查看文件夹占用空间大小
在AIX中查看文件夹占用空间大小 用du -sg 可看出当前文件夹的大小(以G为单位);用du -sg filename 可看出当前文件夹下所有文件或文件夹的大小(以G为单位);du -sk ,du -sm 则分别以KB,MB为单位。
604 0
[Linux监控]磁盘空间大小
echo 192.168.10.69>>ip.list ------------------------------------------- #!/bin/bash #注意if和[]之间的空格 rm -f ~/fanr/shell/DiskUsageAlert/out.
616 0
【原】根据scn查看数据是否成功写入磁盘
作者:david_zhang@sh 【转载时请以超链接形式标明文章】 链接:http://www.cnblogs.com/david-zhang-index/archive/2012/08/05/2624039.
661 0
5489
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载