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

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

回归正题

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

开始:

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

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

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

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

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

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

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

答:

先创建生产环境

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

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

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

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

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

查询到确实是被httpd占用了

那么如何解决呢?

1.重启apache服务

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

2.清空文件,不删除

  1. [root@moban log]# >access_log

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

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

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

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

用户和属组

  1.  

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

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

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

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

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

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

3.文件属性时间戳:

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

stat [文件]

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

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

  1. ls -lt 显示修改时间
  2. ls -lc 显示改变时间
  3. ls -lu 显示创建时间

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

  1. 例:
  2. [root@moban log]# ll --time-style=long-iso
  3. total
  4. -rw-r--r-- root root -- : access_log
  1. drwxr-xr-x. root root Mar : yum.repos.d
  2. 权限后面的点是开启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. 8、Spring Cloud-配置中心 Spring Cloud Config(待补充)

    8.1.Config Server 本地读取配置文件 Config Server 可以从本地仓库读取配置文件,也可以从远处 Git 仓库读取.   本地仓库是指将所有的配置文件统 写在 Config ...

  2. [Python 模块] logging模块、Logger类

    logging模块: 标准库里面的logging模块,在前面学习线程安全时曾用来解决print被打断的问题,这里会介绍logging模块的功能. logging模块是线程安全的,不需要客户做任何特殊的 ...

  3. Apollo2.5摄像头安装

    前言:在Apollo美研团队和长沙CiDi团队的支持下,最近完成了Apollo推荐的摄像头AR023ZWDR(Rev663F12)调试,在这里对Apollo的笔记做一个补充,希望以后的开发者不用在踩我 ...

  4. curl http code 0

    使用curl进行post请求后,接收status code ,结果返回的结果是0 ,但是请求返回的数据是正常的. 检查后发现是执行顺序问题: $response = [ 'statusCode' =& ...

  5. [LuoguP3668][USACO17OPEN]现代艺术2

    [LuoguP3668][USACO17OPEN]Modern Art2(Link) 现在你有一块长为\(N\)的画布,每次可以选择一段连续的区间进行颜色填涂,新颜色会覆盖旧颜色.每一次填涂都要耗费一 ...

  6. haproxy原理理解

    1.haproxy使用最需要注意的点: 1.1连接数: 前端maxconn默认值为2000,非常有必要将其增加几倍. 1.2超时时间 timeout connect 60s # haproxy和服务端 ...

  7. page_address()函数分析--如何通过page取得虚拟地址

    由于X86平台上面,内存是划分为低端内存和高端内存的,所以在两个区域内的page查找对应的虚拟地址是不一样的. 一. x86上关于page_address()函数的定义 在include/linux/ ...

  8. 书单list

    2018年对我来说是个踩到狗屎的一年,不能说运气差,只能说过去所有的不良决策后果都集中到2018年爆发了,希望新的一年,都好起来.书单很短,买的确实很多,真的惭愧. 昨日世界 南渡北归 上学记 回忆录 ...

  9. Spring boot 零配置开发微服务

    2018年12月29日星期六 体验Spring boot 零配置开发微服务 1.为什么要用Spring  boot? 1.1 简单方便.配置少.整合了大多数框架 1.2 适用于微服务搭建,搭建的微服务 ...

  10. ABAP术语-Update Task

    Update Task 原文:http://www.cnblogs.com/qiangsheng/archive/2008/03/20/1114184.html Part of an ABAP pro ...