仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 595|回复: 8
打印 上一主题 下一主题

[其他Linux] linux教程之linux体系猎取硬盘利用信息

[复制链接]
透明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 12:43:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
开发linux发行版的人都是通读过linux内核代码,对linux原理极其精通的人。
1、df命令
  Linux下能够用df命令猎取硬盘的利用情形,经由过程man能够猎取df命令的具体情形。df命令常常用的参数为:
  a:显现全体的档案体系和各支解区的磁盘利用情况
  i:显现i-nodes的利用量
  k:巨细用k来暗示(默许值)
  t:显现某一个档案体系的一切支解区磁盘利用量
  x:显现不是某一个档案体系的一切支解区磁盘利用量
  T:显现每一个支解区所属的档案体系称号
  经常使用命令:df-hi
举例截图以下所示



2、du命令
  du命令用来查询档案或目次的磁盘利用空间,经由过程man猎取du命令的具体先容。经常使用的命令参数以下:
  a:显现全体目次和其次目次下的每一个档案所占的磁盘空间
  b:巨细用bytes来暗示(默许值为kbytes)
  c:最初再加上总计(默许值)
  s:只显现各档案巨细的总合(summarize)
  x:只盘算同属统一个档案体系的档案
  L:盘算一切的档案巨细
  经常使用命令:du-ah
举例操纵以下图所示:




3、statfs布局及函数
  之前在看APUE时分,在第四章文件和目次中,讲到了猎取文件信息的stat布局,经由过程stat布局能够获文件的巨细,创立工夫,修正工夫,用户id,组id等等。man上stat布局及操纵函数以下图所示:




明天次要总结进修一下猎取硬盘信息的statfs布局,经由过程statfs布局的信息盘算前路径地点的磁盘利用情形。man上关于statfs先容以下所示:



statfs布局的中辞意思以下所示:
.代码以下:

structstatfs
{
 longf_type;/*文件体系范例*/
 longf_bsize;/*经由优化的传输块巨细*/
 longf_blocks;/*文件体系数据块总数*/
  longf_bfree;/*可用块数*/
  longf_bavail;/*非超等用户可猎取的块数*/
  longf_files;/*文件结点总数*/
  longf_ffree;/*可用文件结点数*/
  fsid_tf_fsid;/*文件体系标识*/
  longf_namelen;/*文件名的最年夜长度*/
};





statfs布局中可用空间块数有两种f_bfree和f_bavail,前者是硬盘一切残剩空间,后者为非root用户残剩空间,ext3文件体系给root用户分有5%的独享空间,以是这里是分歧的中央。这里要夸大的是每块的巨细通常为4K。因而,要完成与df了局分歧的就得在取得块数上乘以4,如许已用、可用、总块数就能够完成。
测试程序以下所示:

.代码以下:

#include<stdio.h>
#include<sys/statfs.h>
#include<sys/vfs.h>
#include<errno.h>
intmain(intargc,char*argv[])
{
structstatfsdisk_info;
char*path="/home/";
intret=0;
if(argc==2)
{
  path=argv[1];
}
if(ret==statfs(path,&disk_info)==-1)
{
  fprintf(stderr,"Failedtogetfilediskinfomation,
  errno:%u,reason:%s
",errno,strerror(errno));
  return-1;
}
longlongtotal_size=disk_info.f_blocks*disk_info.f_bsize;
longlongavailable_size=disk_info.f_bavail*disk_info.f_bsize;
longlongfree_size=disk_info.f_bfree*disk_info.f_bsize;
//输入每一个块的长度,linux下内存块为4KB
printf("blocksize:%ldbytes
",disk_info.f_bsize);
//输入块个数
printf("totaldatablocks:%ld
",disk_info.f_blocks);
//输入path地点磁盘的巨细
printf("totalfiledisksize:%dMB
",total_size>>20);
//输入非root用户能够用的磁盘空间巨细
printf("avaiablesize:%dMB
",available_size>>20);
//输入硬盘的一切残剩空间
printf("freesize:%dMB
",free_size>>20);
//输入磁盘上文件节点个数
printf("totalfilenodes:%ld
",disk_info.f_files);
//输入可用文件节点个数
printf("freefilenodes:%ld
",disk_info.f_ffree);
//输入文件名最年夜长度
printf("maxinumlengthoffilename:%ld
",disk_info.f_namelen);
return0;
}


测试了局以下所示:



但不会命令而成为高手也是不可能的.这就好比学英语,什么语法都不懂,只捧着单词手册背单词是学不会英语的,但是没有单词词汇量英语水平也提不高的。
爱飞 该用户已被删除
沙发
发表于 2015-1-18 05:30:12 来自手机 | 只看该作者
任何人都可以根据自己的喜好来定制适合自己的操作系统,Linux?是抢占式多任务多用户操作系统.
简单生活 该用户已被删除
板凳
发表于 2015-1-21 15:28:13 | 只看该作者
要增加自己Linux的技能,只有通过实践来实现了。所以,赶快找一部计算机,赶快安装一个Linux发行版本,然后进入精彩的Linux世界,相信对于你自己的Linux能力必然大有斩获。
莫相离 该用户已被删除
地板
发表于 2015-1-30 20:27:46 | 只看该作者
linux鸟哥的私房菜,第三版,基础篇,网上有pdf下的,看它的目录和每章的介绍就行了,这个绝对原创!
灵魂腐蚀 该用户已被删除
5#
发表于 2015-2-6 15:53:32 | 只看该作者
永中office 2004增强版安装只需要默认安装即可使用并操作大多与win系统雷同,打印机的配置和管理,记录光盘等。
海妖 该用户已被删除
6#
发表于 2015-2-16 23:31:12 | 只看该作者
直到学习Linux这门课以后,我才知道,原来我错了。?
飘飘悠悠 该用户已被删除
7#
发表于 2015-3-5 13:58:05 | 只看该作者
通过一条缓慢的调制解调器线路,它也能操纵几千公里以外的远程系统。
再见西城 该用户已被删除
8#
发表于 2015-3-12 08:06:55 | 只看该作者
随着Linux应用的扩展,出现了不少Linux社区。有一些非常优秀的社区往往是Linux高手的舞台,如果在探讨高级技巧的论坛张贴非常初级的问题经常会没有结果。
透明 该用户已被删除
9#
 楼主| 发表于 2015-3-19 19:14:45 | 只看该作者
要增加自己Linux的技能,只有通过实践来实现了。所以,赶快找一部计算机,赶快安装一个Linux发行版本,然后进入精彩的Linux世界,相信对于你自己的Linux能力必然大有斩获。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-25 23:52

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表