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. 马克飞象markdown用法

    目录 markdown用法 ### 根据标题生成目录 `` 快捷键 ctrl+k 代码区域 ctrl+2 二级标题 ctrl+b/i 粗体/斜体 ctrl+l 插入链接 ctrl+g 插入图片 ctr ...

  2. VIM之打开、保存文件

    如何使用命令 在Normal mode下,输入':'字符,在GVIM界面左下可以看到如图所示的界面: 这时候可以键入命令,输入完后按下键盘上的Enter键即可执行命令. 打开文件 使用命令:e [文件 ...

  3. mysql服务器参数

    mysql服务器参数: 配置是从上往下读取,同一个参数项,后边的配置项会覆盖前边的配置项 mysql获取配置信息路径: 命令行参数    mysqld_safe  --datadir=/data/sq ...

  4. Dubbo实践(十二)Refer

    Spring在启动Dubbo客户端应用时,会实例化ReferenceBean<T>并设置配置属性,然后调用ReferenceConfig中的get方法: public synchroniz ...

  5. PAT——1047. 编程团体赛

    编程团体赛的规则为:每个参赛队由若干队员组成:所有队员独立比赛:参赛队的成绩为所有队员的成绩和:成绩最高的队获胜. 现给定所有队员的比赛成绩,请你编写程序找出冠军队. 输入格式: 输入第一行给出一个正 ...

  6. Kmalloc和Vmalloc的区别

    kmalloc()和vmalloc()介绍kmalloc()用于申请较小的.连续的物理内存1. 以字节为单位进行分配,在<linux/slab.h>中2. void *kmalloc(si ...

  7. 并发编程(三)------并发类容器Copy-On-Write容器

    Copy-On-Write简称COW,是一种用于程序设计中的优化策略.JDK里的COW容器有两种: CopyOnWriteArrayList CopyOnWriteArraySet CopyOnWri ...

  8. DBA手记(学习)-library cache pin

    select sid,event,p1raw from v$session_wait where event like 'library cache pin%'; select sql_text fr ...

  9. iOS之在本地搭建IPv6环境测试你的app

    IPv6的简介 IPv4 和 IPv6的区别就是 IP 地址前者是 .(dot)分割,后者是以 :(冒号)分割的(更多详细信息自行搜索). PS:在使用 IPv6 的热点时候,记得手机开 飞行模式 哦 ...

  10. koa2学习笔记01 - 创建项目 —— koa生成器一键生成koa项目

    前言 从17年开始尝试学习搭建个人网站开始,就开始学习摸索node了,至今差不多快两年了. 说起来现在都9102年了,所以最近打算整体设计重构一下网站,索性node后台也重写一遍. 重温一下node, ...