L012-linux系统文件属性知识深入详解小结

最近的学习重点不在这上面,所以更新的比较慢,再加上母亲住院,感情问题,一系列吧,愿快点度过这黑色的4月份,希望我能在5月份阳光起来,加油!

回归正题

其实L012整节课的知识也并不多,回顾一些以往的知识,和继续讲解剩下的没有讲完ls命令显示的每个段落的含义。不过最最重要的,我认为是老师在最后给出的考试题,因为我看的是视频,没有讲义,我可以一点点给抄下来的题啊,不做明白了都对不起我这么费心o(^▽^)o。

开始:

经验积累:
企业面试题,企业生产案例

1.磁盘报错“No space left on device”。但是df -h 查看磁盘空间没满,请问为什么?

答:这种场景大多数都是磁盘的inode满了(可以用df -i查看indod),导致磁盘还有空间,但是出现错误。
解决办法大多是查找日志文件夹中无用的日志和很多系统或者循环产生的空日志文件,删除后会释放出很多inode,或者更换大硬盘。因为出现这种情况肯定也是服务器很老了。

2.文件删除生产场景案例解决实战:

linux提示磁盘空间满了,用df -h产看硬盘确实已经使用100%,然后删除日志文件后发现文件删除了,但是空间依然是满的,该如何解决?

首先把做题需要的没用过的命令写下来

du 查看目录大小(与df所区别,df查看磁盘使用情况)
通常接-sh参数
a:显示全部目录和其次目录下的每个档案所占的磁盘空间
s:只显示各档案大小的总合
b:大小用bytes来表示
x:跳过在不同文件系统上的目录不予统计
a:递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数
h : 人类方便查看的,其实就是把字节变成K的单位了 mkfs 磁盘格式化
参数 -t后面接格式如,ext3 ext4 lsof 查看进程文件占用情况

答:

先创建生产环境

[root@moban lkjiop]# yum install httpd -y        //安装apache
[root@moban lkjiop]# cd /etc/httpd/conf //进入apache文件夹
[root@moban conf]# grep log httpd.conf //在httpd.com配置文件中搜索log的关键字
[root@moban conf]# cp httpd.conf httpd.conf.ori //在更改配置文件之前先备份
[root@moban conf]# sed -i 's#CustomLog logs/access_log combined#CustomLg /app/log/access_log#gog /app/log/access_log combined#g' /etc/httpd/conf/httpd.conf //做替换,更换日志路径
[root@moban conf]# mkdir /app/log -p //创建日志的目录
[root@moban conf]# dd if=/dev/zero of=/dev/sdc bs=8k count= //创建10个每个为8k size 的名字为sdc的虚拟磁盘
[root@moban conf]# ls -l /dev/sdc //是否成功创建
[root@moban conf]# mkfs -t ext3 /dev/sdc //格式化sdc磁盘且格式为ext3
[root@moban conf]# mount -o loop /dev/sdc /app/log/ //将sdc挂载到/app/log上面
[root@moban conf]# df -h //查看是否挂在上
[root@moban conf]# /etc/init.d/httpd start //打开apache服务

打开浏览器,输入你的访问服务器ip,成功后刷新,直到把sdc空间刷满
ok,目前环境搭好

[root@moban conf]# cd /app/log/            //进入日志文件夹
[root@moban log]# rm -f access_log //删除日志文件以缓解空间
[root@moban log]# df -h //查看磁盘空间并没有被释放

这是因为有进程还在使用这个日志文件

[root@moban log]# lsof | grep del            //查看系统进程正在占用的文件,用del来缩小范围(因为日志文件我们已经删除)

查询到确实是被httpd占用了

那么如何解决呢?

1.重启apache服务

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

2.清空文件,不删除

[root@moban log]# >access_log

3.linux下通过mkdir命令创建一个新目录/oldboy/ett,他的硬连接数是多少,为什么?

答:
两个硬链接数
①ett目录本身是一个硬链接
②ett目录下有一个隐藏目录“.”,也是一个硬链接

如果mkdir创建一个目录/oldboy/ett/lcr,那么/oldboy/ett下有几个硬链接?

答:
有三个硬链接
①ett本身为一个链接
②ett目录下有个隐藏目录“.”,也是一个硬链接
③lcr目录下有个隐藏目录“..”,是一个指向上级目录(也就是ett目录)的因链接

用户和属组


1.当你要切换用户的时候会输入切换到的用户名字,其实linux是不识别这个用户名的,他会把这个用户名的UID调配出来去操作。
如果想知道某个用户名的ID ,输入 id [用户名]

UID
0 超级用户 root
1-499 虚拟用户,虚拟用户为一个执行的应用程序需要一个用户的支持,比如装了httpd程序,那么自动产生一个apache用户,当apache启动时root跑apache主程序,子程序用apache用户启动,查看进程(ps -ef | grep apache)时可以看到
500-65535 普通用户
服务的运行时需要用户角色的,可以不用登陆,因此,工作中我们需要运行如mysql数据库,可以创建如下用户

[root@moban ~]# groupadd mysql -g     //指定组GID为49
[root@moban ~]# useradd mysql -u -s /sbin/nologin -g mysql //创建一个名为mysql的用户UID为49,他的shell解释器为/sbin/nologin(空) 且归到组mysql组中
[root@moban log]# id mysql //查看mysql的信息以确认正确性
uid=(mysql) gid=(mysql) groups=(mysql)

2.填加用户涉及到的文件 /etc/passwd /etc/shadow /etc/group /etc/gshadow

[root@moban log]# cat /etc/passwd    //查看管理用户文件
root:x:::root:/root:/bin/bash
bin:x:::bin:/bin:/sbin/nologin

输出的内容每行的字段都是由:来分隔,那么他们都是什么意思呢?
root        :x         :0           :0         :root      :/root     :/bin/bash
帐号名称 帐号密码 帐号UID 帐号组GID 用户说明 用户家目录 shell解释器

3.文件属性时间戳:

查看文件的属性,需要一个stat命令

stat [文件]

[root@moban log]# stat access_log     //查看access_log的属性
File: `access_log'
Size: Blocks: IO Block: regular empty file
Device: 700h/1792d Inode: Links:
Access: (/-rw-r--r--) Uid: ( / root) Gid: ( / root)
Access: -- ::41.000000000 + //创建时间
Modify: -- ::41.000000000 + //修改时间
Change: -- ::41.000000000 + //改变时间

当使用ls命令 文件默认显示的时间是修改时间,如果想显示其他的时间请看下面:

ls -lt 显示修改时间
ls -lc 显示改变时间
ls -lu 显示创建时间

如果需要用不同时间的格式来显示,那么可以使用--time-style=参数 命令
如ls加--time-style= full-iso,long-iso,iso,locale =后面为不同的时间输出格式 long-iso 效果最好

例:
[root@moban log]# ll --time-style=long-iso
total
-rw-r--r-- root root -- : access_log
drwxr-xr-x.   root root    Mar  : yum.repos.d
权限后面的点是开启sexlinux创建会出现,如果在sexlinux关闭的情况下创建目录就不会显示这个“.”了,实际没有什么用处

L012-linux系统文件属性知识深入详解小结的更多相关文章

  1. L011系统文件属性知识进阶详解小节

    L011系统文件属性知识进阶详解小节 这节课的内容相对来说较少,一上午加中午就听完了,现在总结一下,最后会有一个相关的面试题. 首先先附上一张图: 今天学习主要跟①和②有关,①为Inode 号 ②为文 ...

  2. [r]Ubuntu Linux系统下apt-get命令详解

    Ubuntu Linux系统下apt-get命令详解(via|via) 常用的APT命令参数: apt-cache search package 搜索包 apt-cache show package ...

  3. Linux系统下Nginx安装详解

    该随笔为个人原创,后期会根据项目实践实时更新,如若转载,请注明出处,方便大家获得最新博文! 注:安装Nginx需要Linux系统已经安装   openssl-fips-2.0.2.tar.gz zli ...

  4. 【Linux】Linux系统中的权限详解

    我们linux服务器上有严格的权限等级,如果权限过高导致误操作会增加服务器的风险.所以对于了解linux系统中的各种权限及要给用户,服务等分配合理的权限十分重要. 一.文件基本权限 首先看下linux ...

  5. 八.linux系统文件属性知识

    1.文件属性权限是12位,现在只看9位,其中每3个一组,为:属主权限.属组权限.其他权限,其中r可读,w可写,x可执行,如图: 2.文件属性之软硬链接   linux系统中有两种链接,为硬链接(ln) ...

  6. Linux系统文件属性知识

    ---------------------------------------------------------------------------------------------------- ...

  7. Linux系统挂载操作mount详解

    在Linux系统中,文件系统不挂载是无法使用的.挂载,即是让文件系统在操作系统中可用.在Linux中使用mount命令来挂载文件系统,有永久性挂载和临时性挂载两种挂载方式. 1. 永久性挂载: 修改配 ...

  8. linux 系统 tar 的用法详解

    [root@localhost xu]# tar --help 用法: tar [选项...] [FILE]... GNU ‘tar’ 将许多文件一起保存至一个单独的磁带或磁盘归档,并能从归档中单独还 ...

  9. Ubuntu Linux系统下apt-get命令详解

    整理了Ubuntu Linux操作系统下apt-get命令的详细说明,分享给大家.常用的APT命令参数: apt-cache search package 搜索包 apt-cache show pac ...

随机推荐

  1. 【bzoj2154】Crash的数字表格 莫比乌斯反演

    题目描述 今天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple).对于两个正整数a和b,LCM(a, b)表示能同时被a和b整除的最小正整数.例如,LCM(6, ...

  2. 通过css使文字有渐变的效果

    <style> .color{ background-image: -webkit-gradient(linear, left center, right center, from(rgb ...

  3. HTML5本地存储——IndexedDB

    在HTML5本地存储——Web SQL Database提到过Web SQL Database实际上已经被废弃,而HTML5的支持的本地存储实际上变成了 Web Storage(Local Stora ...

  4. PAT——1066. 图像过滤

    图像过滤是把图像中不重要的像素都染成背景色,使得重要部分被凸显出来.现给定一幅黑白图像,要求你将灰度值位于某指定区间内的所有像素颜色都用一种指定的颜色替换. 输入格式: 输入在第一行给出一幅图像的分辨 ...

  5. HDU 1233 还是畅通工程(Kruskal算法)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1233 还是畅通工程 Time Limit: 4000/2000 MS (Java/Others)   ...

  6. nRF5 SDK for Mesh(八) Exploring Mesh APIs using light switch example,使用 灯开关 案例探索BLE mesh 的APIS

    Exploring Mesh APIs using light switch example The light switch example is meant to showcase the API ...

  7. Backward compatibility

    向后兼容

  8. android学习1:清晰详细android环境搭建,超简单

    废话少说,今天是Android学习的开篇的博客,接下来将把自己学习android的各种问题和经历总结一下,其实之前已经自己学过半年了,但是因为开始时刚学的移动端开发还没有概念,当时总结工作又做的不好, ...

  9. iOS之LLDB调试器

    LLDB被定位为下一代的高性能调试器,默认内置于Xcode IDE内, 支持在PC.iOS设备以及模拟器上调试C.Objective-C和C++. 关于LLDB的官方介绍:LLDB 常用命令: 1.  ...

  10. let与var的区别,为什么什么要用let?

    1.var是全局声明,let是块级作用的,只适用于当前代码块 var a = 1: if(true){ let a; a=22: console.log(a);'//22 } if(){}内就是let ...