L012-linux系统文件属性知识深入详解小结
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系统文件属性知识深入详解小结的更多相关文章
- L011系统文件属性知识进阶详解小节
L011系统文件属性知识进阶详解小节 这节课的内容相对来说较少,一上午加中午就听完了,现在总结一下,最后会有一个相关的面试题. 首先先附上一张图: 今天学习主要跟①和②有关,①为Inode 号 ②为文 ...
- [r]Ubuntu Linux系统下apt-get命令详解
Ubuntu Linux系统下apt-get命令详解(via|via) 常用的APT命令参数: apt-cache search package 搜索包 apt-cache show package ...
- Linux系统下Nginx安装详解
该随笔为个人原创,后期会根据项目实践实时更新,如若转载,请注明出处,方便大家获得最新博文! 注:安装Nginx需要Linux系统已经安装 openssl-fips-2.0.2.tar.gz zli ...
- 【Linux】Linux系统中的权限详解
我们linux服务器上有严格的权限等级,如果权限过高导致误操作会增加服务器的风险.所以对于了解linux系统中的各种权限及要给用户,服务等分配合理的权限十分重要. 一.文件基本权限 首先看下linux ...
- 八.linux系统文件属性知识
1.文件属性权限是12位,现在只看9位,其中每3个一组,为:属主权限.属组权限.其他权限,其中r可读,w可写,x可执行,如图: 2.文件属性之软硬链接 linux系统中有两种链接,为硬链接(ln) ...
- Linux系统文件属性知识
---------------------------------------------------------------------------------------------------- ...
- Linux系统挂载操作mount详解
在Linux系统中,文件系统不挂载是无法使用的.挂载,即是让文件系统在操作系统中可用.在Linux中使用mount命令来挂载文件系统,有永久性挂载和临时性挂载两种挂载方式. 1. 永久性挂载: 修改配 ...
- linux 系统 tar 的用法详解
[root@localhost xu]# tar --help 用法: tar [选项...] [FILE]... GNU ‘tar’ 将许多文件一起保存至一个单独的磁带或磁盘归档,并能从归档中单独还 ...
- Ubuntu Linux系统下apt-get命令详解
整理了Ubuntu Linux操作系统下apt-get命令的详细说明,分享给大家.常用的APT命令参数: apt-cache search package 搜索包 apt-cache show pac ...
随机推荐
- POJ2724 Purifying Machine
嘟嘟嘟 扒下来的题意:迈克有一台可以净化奶酪的机器,用二进制表示净化的奶酪的编号.但是,在某些二进制串中可能包含有\(*\).例如\(01*100\),\(*\)其实就代表可以取\(0\),\(1\) ...
- Hadoop学习之路(二十五)MapReduce的API使用(二)
学生成绩---增强版 数据信息 computer,huangxiaoming,85,86,41,75,93,42,85 computer,xuzheng,54,52,86,91,42 computer ...
- windows下使用docker(一)—— 安装
1.下载地址:https://docs.docker.com/docker-for-windows/install/#download-docker-for-windows 2.安装 按照安装向导安装 ...
- js判断字符长度 汉字算两个字符
方法一:使用正则表达式,代码如下: function getByteLen(val) { var len = 0; for (var i = 0; i < val.length; i++) { ...
- LCG(linear congruential generator): 一种简单的随机数生成算法
目录 LCG算法 python 实现 LCG算法 LCG(linear congruential generator)线性同余算法,是一个古老的产生随机数的算法.由以下参数组成: 参数 m a c X ...
- SDN测量论文粗读(三)9.24
Jaal: Towards Network Intrusion Detection at ISP Scale 论文来源:CoNext 发表时间:2015 解决问题及所做贡献:Jaal:大规模精细网络入 ...
- 微服务之数据同步Porter
Porter是一款数据同步中间件,主要用于解决同构/异构数据库之间的表级别数据同步问题. 背景 在微服务架构模式下深刻的影响了应用和数据库之间的关系,不像传统多个服务共享一个数据库,微服务架构下每个服 ...
- ios宏定义字符串
ios宏定义字符串 #define objcString(str) @""#str"" 使用效果: objcString(字符串)
- Ubuntu16.04 解决matplotlib乱码或者中文显示不了的问题(可用)
一. 下载字体 SimHei.ttf 复制到linux字体库中 sudo cp ~/SimHei.ttf /usr/share/fonts/SimHei.ttf 二.查看matplotlib配置 In ...
- [译]C语言实现一个简易的Hash table(3)
上一章,我们讲了hash表的数据结构,并简单实现了hash表的初始化与删除操作,这一章我们会讲解Hash函数和实现算法,并手动实现一个Hash函数. Hash函数 本教程中我们实现的Hash函数将会实 ...