inode、block、软硬链接

inode和block
inode和block是硬盘格式化的主要目的,inode号也占用硬盘空间,一个inode号的大小为256字节,这也是硬盘格式化后可用内存不是全部内存空间的原因
硬盘要想存数据,必须先决定硬盘存储数据的格式,如果是ext4格式,格式化后会生成inode和block,inode是文件的目录索引,block是存放数据的,文件的基本属性不是文件的数据,所以存放在inode里,只有文件内的数据内容才会存放在block里。计算机通过inode号(相当于目录索引)去找到block里存放的数据。
关于文件的起始大小
如果创建一个什么内容都没有的文件,它是0 K,但是一旦往文件里写入了内容,哪怕是一个字符,它也最小是4K,因为linux存储的最小单位就是一个block,而一个block的大小是4K,而且一个block只能存放一个文件,如果一个block存放数据后内存没被占满,剩下的空间就成为了空间浪费
存放的数据越大越省空间,因为没有空间浪费,存放的数据越小越浪费空间,特别是小而数量多的文件
端口号和inode号的上限,大小
端口号上限为65535
inode号上限为
inode号默认256k
ls -i命令查看文件的inode号
依次为:inode号、权限、软硬链接数、属主、数组、大小、时间、文件名
rm有参数,可以根据inode号进行文件的删除
在这里插入图片描述
文件的三个时间:A、M、C
三个时间也属于文件的基本属性,存放在inode里
A为访问时间、M为内容改变时间、C为修改时间
在这里插入图片描述
M时间只有文件内容发生改动后才会改变,改变的同时C时间也会发生改变,因为内容改变也是修改文件。文件的移动、修改权限、创建链接、修改文件之类的操作会使C时间发生变化,但是M时间不会改变。总而言之,M时间发生变化,C时间也会随之改变。但是C时间变化,M时间不一定会改变。
格式化硬盘时,指定inode个数,block大小
mkfs.ext4 -N (后加inode个数) -b (指定block大小) 设备名
在这里插入图片描述
出现磁盘已满(No space left on device)的两个情况
内存空间用尽,block空间用完
inode号被用完
解决磁盘因inode号用尽导致不能创建文件的原因和方法
原因有两个:
1,因为僵尸进程的存在,不释放inode号
2,在定时任务有屏幕输出时,会发送邮件到默认为root账户,也会占用inode号
解决方法:
1,删除不使用的文件
2,将文件备份,重新格式化此硬盘,并指定较多的inode号个数
进程和线程可能出现的问题和解决方法
进程的本质只是一个资源的集合体,也就是资源池。资源池是存放在内存空间的(占用内存)。操作系统每开辟一个进程,都是要占用空间的。所以,理论上,进程越多,内存使用越大。
然后,进程里还存在很多我们看不到的线程,线程才是真正的程序(真正干活的),每个线程都在被CPU(核心处理单元)操作着,因此线程是消耗CPU资源的。
总结一句话:进程占内存,线程占CPU
进程导致的内存问题,比如僵尸进程的问题
线程导致的CPU问题,比如线程死锁的问题
线程死锁:是两个被线程打开操作着的文件,这两个文件的保存存在相互依赖的关系,这样一直就不能进行文件的保存,线程就不能被释放,因此线程死锁过多就会出现CPU负载过重的情况
如果出现线程死锁,线程在进程里,可以通过pa aux查看那进程占用的百分比
stat -c %a 文件名 取文件的权限最快捷的方法,以数字显示
软硬连接
硬链接
源文件也相当于硬链接,源文件的链接和硬链接是独立的,没有一点关系,其中一个出现任何问题都不会对对方造成丝毫影响
硬链接和源文件是一个inode号,因为一个源文件的所有硬链接是指向inode号才打开的block查看内容。目录不能生成硬链接,硬链接和源文件必须在同一文件系统内
ln命令创建源文件的硬链接
ln 源文件 硬链接名称

软连接
软链接指向源文件,软链接的inode号与源文件不同,目录也可生成软链接,软链接也可与源文件不在同一文件系统内,软链接文件的内容是源文件的路径,但是当源文件移动或重命名时软链接将失去作用
ln -s命令创建软链接
ln -s 源文件名 软链接名

软链接常用的情况
只靠硬链接进行文件备份的话风险过大,所以软链接是比较常用的
把升级过后的软件,做一个软链接还叫原来的名字,通过软链接找到升级过后的软件
软硬连接的区别
硬链接inode号相同,软链接inode号不同
硬链接不能跨文件系统(分区或硬盘),软链接可以
源文件删除、移动、改名硬链接不受影响,软链接失去作用
linux文件删除机制
满足两个条件的情况下才会删除文件,释放内存
1,硬链接数为0
2,打开此文件的进程数为0(也就是不能有进程正在操作此文件)
恢复误删的文件
真正的删除是采取覆盖的方式,存储数据是依次往硬盘里放的,当用到最后之后回过头,从新查看被删除的位置,进行覆盖。此时文件就真的没了。
立即停止操作系统,拔出硬盘,可能还有救的希望
清空日志释放内存而不删除日志的方法
rm -rf messages文件后重启日志服务
通过重定向清空 > /var/log/messages

猜你喜欢

转载自blog.csdn.net/weixin_43880933/article/details/88602336
今日推荐