linux系统中的文件或目录的属性主要包括:引索节点(indoe)、文件类型、权限属性、连接数、所归属的用户和用户组、最近修改时间。

 

  1. 索引节点indoe index node

   CentOS5 inode的默认大小是128字节,centos6 默认大小是256字节。inode的大小在文件系统格式化后固定不变,无法更改,格式化前可以指定inode的大小。但一般不会去改。查看inode大小命令:

wKiom1e4MwuQFkyTAABDr99Vln4130.png

   一个文件至少占用一个inode和一个block。block是实习存放内容的地方。block分大了,会浪费磁盘空间,分小了,影响磁盘读取性能,一般生产环境设置block大小为4K

  问100M的磁盘空间,写入1K文件,1M的文件。分别能写多少??

  inode 存放文件属性信息,默认大小128byt 256byt(C6)

  block 是存放文件的实际内容,默认大小1K(boot)或4K(非系统分区默认4K)

  一个文件至少占用1个inode和1个block

知道这3点信息,剩下的就是数学方程式解决了。

2.硬链接(hard link)与软链接(symbolic),之前有提到,创建链接的命令时ln,默认不带参数是创建硬链接,参数-s是创建软链接。

 硬链接是指通过索引节点(inode)来链接,多个文件名指向同一个索引节点的情况是允许的,这种就成为硬链接。

 软链接,类似于window中的快捷方式。

实战演练:模拟磁盘空间被占满,删除相关文件。

yum install httpd -y         ##安装httpd服务

/etc/init.d/httpd start

lsof -i :80

dd if=/dev/zero  of=/dev/sdc bs=8K count=10    ##创建小的文件系统 80K

ls -l /dev/sdc

mkfs -t ext3 /dev/sdc  

[root@mode ~]# mkdir /app/log -p

[root@mode ~]# mount -o loop /dev/sdc /app/log

[root@mode ~]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda3             6.6G  2.6G  3.8G  41% /

/dev/sda1             190M   12M  169M   7% /boot

tmpfs                 760M     0  760M   0% /dev/shm

/dev/sdc               73K   14K   55K  21% /app/log

[root@mode httpd]# cd /etc/httpd/conf    ##修改日志存放的路径 让web服务往/app/log写日志

[root@mode conf]# vi httpd.conf 

[root@mode conf]# /etc/init.d/httpd  restart

####516行路径改成/app/log……  

[root@mode conf]# tail -f /app/log/access_log  

##跟踪文件变化,此时浏览器中输入Linux的IP地##址,能打开Apache的网站,而且这个日志文件会有变化,不断出刷新网站,该文件也会不断增加。

for n in `seq 100000`;do curl -s 192.168.1.10 >/dev/null;done  

##访问10万次,来填满日志文件

[root@mode conf]# df -h   ##查看磁盘信息 发现sdc盘已经满了 就此我们的环境就模拟完成

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda3             6.6G  2.6G  3.8G  41% /

/dev/sda1             190M   12M  169M   7% /boot

tmpfs                 760M     0  760M   0% /dev/shm

/dev/sdc               73K   73K     0 100% /app/log

我们模拟了一个被充满的磁盘sdc,模拟环境也是运维中的重要部分,下面我们就来验证怎么去彻底删除文件,来释放磁盘空间。

[root@mode conf]# cd /app/log/

[root@mode log]# rm -f access_log 

[root@mode log]# df -h|grep sdc

/dev/sdc               73K   73K     0 100% /app/log

##在删除了access_log 文件后,我们查看磁盘信息,发现sdc依然是满的,并没有释放

[root@mode log]# /etc/init.d/httpd  restart

[root@mode log]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda3             6.6G  2.6G  3.8G  41% /

/dev/sda1             190M   12M  169M   7% /boot

tmpfs                 760M     0  760M   0% /dev/shm

/dev/sdc               73K   14K   55K  21% /app/log

##在重启服务后,在看sdc盘,我们发现一部分的空间已经释放了。

博文转载:http://oldboy.blog.51cto.com/2561410/612351