码迷,mamicode.com
首页 > 系统相关 > 详细

linux 基础 文件系统 用户权限

时间:2018-11-16 15:14:00      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:ash   特点   abr   ini   请给出命令   close   .bashrc   空间不足   删除   


技术分享图片
描述Linux系统的启动过程?

1.开机自检 BIOS
2.MBR引导
3.GRUB菜单
4.加载内核
5.运行init进程
6.从/etc/inittab读取运行级别
7.根据/etc/rc.sysinit 初始化系统(设置主机名 设置ip)
8.根据运行级别启动对应的软件(开机自启动软件)
9.运行mingetty显示登录界面
Linux系统的启动过程
技术分享图片
临时修改

[root@template ~]# alias rm=‘echo command not found‘ 
[root@template ~]# rm
command not found
[root@template ~]# alias rm
alias rm=‘echo command not found‘
?
永久设置
[root@template ~]# vim /etc/profile
按o
输入
alias rm=‘echo command not found‘
[root@template ~]#source /etc/profile 
??
编辑 /root/.bashrc 把 alias rm=‘rm -i‘这一行前面加上一个注释#
修改alis
技术分享图片
查看
echo $LANG $PS1
[root@lewen-lnb ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

修改环境变量
export LANG=en_US.UTF-8

PATH作用:
1.环境变量
2.存放的是命令的位置/目录

执行一个命令的过程?
1.ls或 mkdir
2.系统会去 PATH里面的位置查找命令 是否存在
3.存在就运行
4.不存在就报错:command not found 或  no such file or dir
环境变量


练习题

技术分享图片
mkdir /lewen -p

cd /lewen

mkdir ext/lewen test xiaodong xiaofan xingfujie -p

touch jeacen lewen wodi.gz yingsui.gz

tree
tree
find

ls+grep

方法1-tree
?

方法2-find
[root@lewen-lnb oldboy]# find  -maxdepth 1 -type d
.
./xingfujie
./test
./xiaodong
./xiaofan
./ext
?
?
[root@lewen-lnb oldboy]# find  -maxdepth 1 -type d  -name "."
.
[root@lewen-lnb oldboy]# find  -maxdepth 1 -type d ! -name "."
./xingfujie
./test
./xiaodong
./xiaofan
./ext

方法3-grep
[root@lewen-lnb oldboy]# ls -l |grep "以d开头的行"
[root@lewen-lnb oldboy]# ls -l |grep "^d"
drwxr-xr-x  3 root root 4096 Dec 15 00:26 ext
drwxr-xr-x. 2 root root 4096 Dec 11 21:22 test
drwxr-xr-x  2 root root 4096 Dec 15 00:26 xiaodong
drwxr-xr-x  2 root root 4096 Dec 15 00:26 xiaofan
drwxr-xr-x  2 root root 4096 Dec 15 00:26 xingfujie

^  高级货色(三剑客使用) 正则表达式 以.....开头的行

方法4-awk
[root@lewen-lnb oldboy]# ls -l |awk ‘第2列大于1‘
awk: 第2列大于1
awk: ^ invalid char ‘奠in expression
[root@lewen-lnb oldboy]# ls -l |awk ‘$2>1‘
total 32
drwxr-xr-x  3 root root 4096 Dec 15 00:26 ext
drwxr-xr-x. 2 root root 4096 Dec 11 21:22 test
drwxr-xr-x  2 root root 4096 Dec 15 00:26 xiaodong
drwxr-xr-x  2 root root 4096 Dec 15 00:26 xiaofan
drwxr-xr-x  2 root root 4096 Dec 15 00:26 xingfujie

方法5-ls
[root@lewen-lnb oldboy]# ls -F|grep "/"
ext/
test/
xiaodong/
xiaofan/
xingfujie/
[root@lewen-lnb oldboy]# #-F 给不通类型的文件 加上不通的标记/尾巴 

方法6-ls
ls -ld */
第1题 如何过滤出已知当前目录下lewen中的所有一级目录(提示:不包含lewen目录下面目录的子目录及隐藏目录,即只能是第一级目录)?
技术分享图片
cd  -
 An  argument  of  -  is  equivalent  to  $OLDPWD.
cd  -  #cd $OLDPWD
cd  -  #如何快速的回到 上一次所在的位置
cd  .  #当前目录
        复制/移动
cd  .. #进入当前目录的上级目录
cd  ~  #进入当前目录的家目录 回老家
第2题 如何快速的回到 上一次所在的位置
技术分享图片
#ls显示的时候按照时间顺序 最近的在最下面 按时间顺序逆序/倒叙

ls -lrt

-r  逆序显示内容

-t  按照文件的修改时间
[root@lewen-lnb etc]# ls -l --time-style=long-iso
total 1636
drwxr-xr-x.  3 root root   4096 2017-12-08 12:38 abrt
drwxr-xr-x.  4 root root   4096 2017-12-08 12:41 acpi
-rw-r--r--.  1 root root     46 2017-12-12 07:18 adjtime
-rw-r--r--.  1 root root   1512 2010-01-12 21:28 aliases
-rw-r--r--.  1 root root  12288 2017-12-08 12:49 aliases.db
第3题 一个目录中有很多文件(ls查-看时好多屏),想最快速度查看到最近更新的文件。如何看?
技术分享图片
请问如何解决? 请给出解决办法或配置或处理命令。(提示:可以从apache服务配置上着手,也可以从生成出来的日志上着手。)
mkdir -p /app/logs
cd /app/logs
for  time in  {01..20};do  date -s "201705$time"; touch access_www_$(date +%F).log ;done
date -s "20170520"
?
[root@lewen-lnb logs]# find /app/logs/ -type f  -mtime +7|xargs ls -l
-rw-r--r-- 1 root root 0 May  1 00:00 /app/logs/access_www_2017-05-01.log
-rw-r--r-- 1 root root 0 May  2 00:00 /app/logs/access_www_2017-05-02.log
-rw-r--r-- 1 root root 0 May  3 00:00 /app/logs/access_www_2017-05-03.log
-rw-r--r-- 1 root root 0 May  4 00:00 /app/logs/access_www_2017-05-04.log
-rw-r--r-- 1 root root 0 May  5 00:00 /app/logs/access_www_2017-05-05.log
-rw-r--r-- 1 root root 0 May  6 00:00 /app/logs/access_www_2017-05-06.log
-rw-r--r-- 1 root root 0 May  7 00:00 /app/logs/access_www_2017-05-07.log
-rw-r--r-- 1 root root 0 May  8 00:00 /app/logs/access_www_2017-05-08.log
-rw-r--r-- 1 root root 0 May  9 00:00 /app/logs/access_www_2017-05-09.log
-rw-r--r-- 1 root root 0 May 10 00:00 /app/logs/access_www_2017-05-10.log
-rw-r--r-- 1 root root 0 May 11 00:00 /app/logs/access_www_2017-05-11.log
-rw-r--r-- 1 root root 0 May 12 00:00 /app/logs/access_www_2017-05-12.log

找出/app/logs下面以.log结尾的并且修改时间是7天之前的文件并删除(ls -l)

find /app/logs/ -type f -name "*.log"  -mtime +7

#find /app/logs/ -type f -name "*.log"  -mtime +7|xargs ls -l

#ls -l $(find /app/logs/ -type f -name "*.log"  -mtime +7)

#find /app/logs/ -type f -name "*.log"  -mtime +7  -exec ls -l {}  \;

通过系统软件对日志进行切割。
第4题 已知apache/nginx服务的访问日志按天记录在服务器本地目录/app/logs下,由于磁盘空间紧张,现在要求只能保留最近7天访问日志!
技术分享图片
第5题 调试系统服务时,希望能实时查看系统日志/var/log/messages的更新,如何做?

tail -f /var/log/secure

补充find命令相关题目:

查找/lewen 下所有以log 结尾的大于1M 的文件复制到/tmp

[root@lewen-lnb logs]# cat /etc/services  /etc/services > 1m.log

[root@lewen-lnb logs]# ls -lh 1m.log 
-rw-r--r-- 1 root root 1.3M Dec 12 00:14 1m.log

find /lewen  -type f -name "*.log"  -size +1M
-size +1M
-size +100k

find /lewen  -type f -name "*.log"

mkdir -p /tmp/a /tmp/b /tmp/c /tmp/d
方法1 find+$()
#cp 次处是find命令的结果  /tmp/a/
cp   $(find /app/logs/ -type f -name "*.log")  /tmp/a/
?
方法2 find + -exec
find /app/logs/ -type f -name "*.log" -exec cp {} /tmp/b/  \;
?
?
方法3 find + |xargs
find /app/logs/ -type f -name "*.log" |xargs cp -t /tmp/c
第5题 调试系统服务时,希望能实时查看系统日志/var/log/messages的更新,如何做? 补充find命令相关题目:
技术分享图片
第11题 已知如下命令及结果:取列字符串

mkdir -p /lewen

echo "I am lewen,myqq is 31333741">/lewen/lewen.txt

a.现在需要从文件中过滤出“lewen”和“31333741”字符串,请给出命令.

b.如果需要从文件中过滤出“lewen,31333741”字符串,请再给出命令.

a.现在需要从文件中过滤出“lewen”和“31333741”字符串,请给出命令.

方法1-sed-sed
[root@oldboyedu01-nb oldboy]# sed ‘s#I am ##g‘ oldboy.txt |sed ‘s#,myqq is##g‘
oldboy 31333741

方法2-sed/tr+awk    #awk 取列
[root@oldboyedu01-nb oldboy]# sed ‘s#,# #g‘ oldboy.txt |awk ‘{print $3,$6}‘
oldboy 31333741
?
[root@oldboyedu01-nb oldboy]# tr "," " " <oldboy.txt |awk ‘{print $3,$6}‘
oldboy 31333741

方法3-awk指定多个分隔符号
[root@oldboyedu01-nb oldboy]# cat oldboy.txt
I am oldboy,myqq is 31333741
[root@oldboyedu01-nb oldboy]# awk -F "," ‘{print $1}‘ oldboy.txt
I am oldboy
?
[root@oldboyedu01-nb oldboy]# awk -F "[, ]"  ‘{print $3,$6}‘ oldboy.txt
oldboy 31333741

-F "[, ]" 表示以逗号或者空格作为菜刀 分隔符

b.如果需要从文件中过滤出“lewen,31333741”字符串,请再给出命令.

awk  -F 以逗号和空格为分隔符
[root@oldboyedu01-nb oldboy]# awk -F "[, ]"  ‘{print $3,$6}‘ oldboy.txt
oldboy 31333741
[root@oldboyedu01-nb oldboy]# awk -F "[, ]"  ‘{print $3","$6}‘ oldboy.txt
oldboy,31333741
[root@oldboyedu01-nb oldboy]# awk -F "[, ]"  ‘{print $3"$1"$6}‘ oldboy.txt
oldboy$131333741
[root@oldboyedu01-nb oldboy]# awk -F "[, ]"  ‘{print $3" $1 "$6}‘ oldboy.txt
oldboy $1 31333741

小结:

1.tr命令

2.awk指定分隔符 指定多个分隔符
第11题 已知如下命令及结果:取列字符串
技术分享图片
第12题 如何查看/etc/services文件的有多少行?
[root@lewen-nb oldboy]# wc -l /etc/services
10774 /etc/services
[root@lewen-nb oldboy]# ps -ef |grep "/sshd"|wc -l
2

屌丝去洗浴中心之路
?

第13题 过滤出/etc/services 文件包含3306或1521两数字所在的行的内容。

[root@lewen-nb lewen]# egrep "3306|1521" /etc/services 

mysql           3306/tcp                        # MySQL

mysql           3306/udp                        # MySQL

ncube-lm        1521/tcp                # nCube License Manager

ncube-lm        1521/udp                # nCube License Manager

[root@lewen-nb lewen]# #egrep === grep -E 支持高级正则
第12题 如何查看/etc/services文件的有多少行?第13题 过滤出/etc/services 文件包含3306或1521两数字所在的行的内容。
技术分享图片
第14题 命令行及shell中加单引号和加双引号的区别小结

单引号 所见即所得 吃啥吐啥

[root@lewen-nb lewen]# echo ‘hello lls $LANG $(hostname) `pwd`‘

hello lls $LANG $(hostname) `pwd`

 双引号 里面的特殊符号会被解析

[root@lewen-nb lewen]# echo "hello lls $LANG $(hostname) `pwd`"

hello lls en_US.UTF-8 lewen-nb /lewen
[root@lewen-nb ~]# ls -lhi /etc/hosts
390174 -rw-r--r--. 2 root root 200 Sep 25 20:19 /etc/hosts
[root@lewen-nb ~]# #文件属性=====ls -lhi 每一列的含义
                                                                          用户属于的家庭  文件修改时间 文件名
390174      -            rw-r--r--.                  2               root root     200    Sep 25 20:19 /etc/hosts
inode号码   文件的类型   文件的权限.(与selinux有关)  文件硬链接数量  主人 家人    文件大小

文件名不是文件的属性。
第14题 命令行及shell中加单引号和加双引号的区别小结


inode和block简介

技术分享图片
获得一个硬盘到可以向硬盘中存放数据
硬盘(房子),分区(划分隔断),格式化创建文件系统(装修-不同风格),挂载(安装门窗)

inode

1)含义
index node 索引节点
用来存放文件属性的空间。通过inode号码找到这个空间的。
inode号码----家庭住址
inode空间----家庭
文件名不存放在inode中。

2)怎么来的
格式化创建文件系统

3)特点
  1#inode存放文件属性
  2#存放block的位置(指向block的指针)
  3#创建一个文件要占用一个inode
  4#inode节点号相同的文件,互为硬链接文件,可以认为是一个文件的不同入口。
    硬链接数量====超市入口的数量
  5#inode在某一个文件系统(分区),是唯一的。

4)怎么用/看******
    ls -i(看某些文件的inode号码)
    df -i(系统里面inode用了多少剩余多少)

block

1)含义
数据块
block实际存放数据的位置

2)怎么来的
格式化创建文件系统

3)特点
  1#block是实际存放数据的位置
  2#block 4k(centos 6.x) 1k 8k
  3#创建大文件会占用多个block,如果文件很小1k,4k剩余的空间会被浪费。
  4#创建一个非空文件要占用一个inode和至少1个block
  5#每读取一个block就会消耗一次磁盘I/O(input/output 磁盘读写)。

4)怎么用/怎么看
    df -h(磁盘block使用情况)
    ls -lh

inode与block小结:
1.格式化创建文件系统
2.在同一个文件系统(分区),两个文件inode相同,互为硬链接
3.创建一个非空文件要占用一个inode和至少1个block
4.如何查看inode和block的使用情况 df -i  df -h
描述linux下软链接和硬链接的区别
技术分享图片
no space left on device磁盘空间不足-因为block满了。
seq 100000000 >/tmp/big
#第一个里程碑-看看到底哪里满了
[root@lewen-nb ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       8.8G  8.8G     0 100% /
tmpfs           1.9G     0  1.9G   0% /dev/shm
/dev/sda1       190M   40M  141M  22% /boot

#第二个里程碑-是哪一个目录占得空间大,最终定位到目录或文件
[root@lewen-nb ~]# du -sh /*|grep G
1.1G    /usr
7.4G    /var
[root@lewen-nb ~]# du -sh /var/*|grep G
7.3G    /var/log
[root@lewen-nb ~]# du -sh /var/log/*|grep G
7.3G    /var/log/messages
[root@lewen-nb ~]# ls -lh /var/log/messages
-rw------- 1 root root 7.3G Oct 16 19:20 /var/log/messages

#第三个里程碑-问清楚是否可以删除,然后在操作。
企业案例:

如果向磁盘写入数据提示如下错误:No space left on device(磁盘空间不足),通过df -h查看磁盘空间,发现没满,请问可能原因是什么?企业场景什么情况下会导致这个问题发生?

inode用光了。

模拟环境的命令。
mkdir -p /app/logs
dd if=/dev/zero of=/dev/sdc bs=8K  count=10
ls -l /dev/sdc
mkfs.ext4 /dev/sdc

mount -o loop /dev/sdc /app/logs
[root@lewen-nb ~]# cd /app/logs/
[root@lewen-nb logs]# touch stu{1..6}.log
touch: cannot touch `stu6.log‘: No space left on device
[root@lewen-nb logs]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       8.8G  1.6G  6.9G  19% /
tmpfs           1.9G     0  1.9G   0% /dev/shm
/dev/sda1       190M   40M  141M  22% /boot
/dev/sdc         73K   14K   55K  21% /app/logs
[root@lewen-nb logs]# df -i
Filesystem     Inodes IUsed  IFree IUse% Mounted on
/dev/sda3      593344 58530 534814   10% /
tmpfs          488562     1 488561    1% /dev/shm
/dev/sda1       51200    39  51161    1% /boot
/dev/sdc           16    16      0  100% /app/logs
no space left on device 企业案例
技术分享图片
文件类型

f file      普通文件

d directory 目录

l softlink  软链接(快捷方式)
f file      普通文件
[root@lewen-nb ~]# ls -l /tmp/etc.tar.gz  /bin/ls /etc/hosts
-rwxr-xr-x. 1 root root  117048 Mar 23  2017 /bin/ls
-rw-r--r--. 2 root root     200 Sep 25 20:19 /etc/hosts
-rw-r--r--  1 root root 9744299 Oct 20  2017 /tmp/etc.tar.gz
?
##二进制文件  命令
[root@lewen-nb ~]# file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
?
##文本文件
[root@lewen-nb ~]# file /etc/hosts
/etc/hosts: ASCII text
?
##数据文件 data
[root@lewen-nb ~]# file /tmp/etc.tar.gz
/tmp/etc.tar.gz: gzip compressed data, from Unix, last modified: Fri Oct 20 01:36:16 2017

扩展名-文件后面的小尾巴

windows        windows通过扩展名区分不同类型的文件。

linux          扩展名是用来给我们看的。

.sh     脚本文件

.conf   配置文件
文件类型
技术分享图片
用户和用户组简介

整体对于一个文件/目录来说:用户可以分为3类

主人           家人                      陌生人

所有者的名字   所有者属于的组的名字
[root@lewen-nb tmp]# ll -hi /etc/hosts
390174 -rw-r--r--. 2 root root 200 Sep 25 20:19 /etc/hosts
?
假设我是lewen用户,我与这个文件有什么关系
lewen
?
[root@lewen-nb ~]# id lewen
uid=500(lewen) gid=500(lewen) groups=500(lewen)
#id查询用户信息
#属于哪个用户组
?
?
linux中存在于系统中的用户如何分类
UID   user  id 用户的id号码=====身份证号码    √√√√√
GID   group id 用户组的id号码===户口本的号码
?
?                    UID
1.皇帝 root            0
2.傀儡 虚拟用户        1-499   系统中每个进程要有一个对应的用户,无法使用的.
3.贫民百姓 普通用户    500+

如何保护root
1.禁止root远程登录
2.修改ssh默认的端口号22
3.定期分析/var/log/secure 记录着用户的登录信息
用户和用户组简介
技术分享图片
#与用户有关的文件

/etc/passwd     存放的是用户的信息
/etc/shadow     用户密码的信息
/etc/group      用户组的信息
/etc/passwd 详解
root  :x:0  :0  :root:/root       :/bin/bash
?
lewen:x:500:500:    :/home/lewen:/bin/bash
第一列:用户名字
第二列:存放密码的地方
第三列:UID
第四列:GID
第五列:用户的说明信息,默认为空
第六列:用户的家目录
?
~
root     ~  /root
lewen   ~  /home/lewen
?
第七列:用户使用的shell,用户使用的命令解释器
?
/bin/bash--------centos默认的命令解释器
/sbin/nologin----用户无法登陆系统,相当于是傀儡用户
与用户有关的文件
技术分享图片
linux基础权限介绍
r  4  read可以读取文件内容
w  2  write修改文件内容
x  1  execute可以运行文件(命令 脚本)

-  0  什么权限都没有
- rw-   r--   r--.    2 root root 200 Sep 25 20:19 /etc/hosts
  主人  家人  陌生人
  420   400   400
  6     4     4

[root@lewen-nb ~]# ls -l /bin/ls
-rwxr-xr-x. 1 root root 117048 Mar 23  2017 /bin/ls
 421401401
 7  5  5
linux基础权限介绍
技术分享图片
软硬链接
软链接-windows快捷方式

符号链接
怎么来的

[root@lewen-nb lewen]# ln -s lewen.txt  lewen.txt-soft
                                源文件    链接文件
[root@lewen-nb lewen]# ls -l lewen.txt*
-rw-r--r--. 1 root root 29 Oct 16 17:52 lewen.txt
lrwxrwxrwx  1 root root 10 Oct 17 09:27 lewen.txt-soft -> lewen.txt

特点
1.存放着源文件的位置
2.源文件被删除
3.节约时间

硬链接
相当于是超市的前后门,通过不同的大门进入超市
在同一个分区中,两个文件或多个文件的inode号码相同,这些文件互为硬链接

怎么来的
ln 创建

特点
1.相当于是超市的前后门,硬链接数量就是超市一共有多少门
2.删除硬链接或源文件,文件还是可以使用的
3.把硬链接和源文件都删除,文件被删除====硬链接数量为0

[root@lewen-nb lewen]# ls -l lewen.txt*
-rw-r--r--. 1 root root 29 Oct 16 17:52 lewen.txt
lrwxrwxrwx  1 root root 10 Oct 17 09:27 lewen.txt-soft -> lewen.txt
[root@lewen-nb lewen]# ln lewen.txt lewen.txt-hard
[root@lewen-nb lewen]# ls -lhi lewen.txt*
400490 -rw-r--r--. 2 root root 29 Oct 16 17:52 lewen.txt
400490 -rw-r--r--. 2 root root 29 Oct 16 17:52 lewen.txt-hard
400479 lrwxrwxrwx  1 root root 10 Oct 17 09:27 lewen.txt-soft -> lewen.txt
软硬链接
技术分享图片
描述linux下软链接和硬链接的区别
解答:
 1)如何创建:
    a)默认不带参数情况下,ln命令创建的是硬链接,带-s参数的ln命令创建的是软链接。

 2)含义:
    a)硬链接文件与源文件的inode节点号相同,而软链接文件相当于windows下面的快捷方式(inode节点号与源文件不同)

 3) 特点:
    a)不能对目录创建硬链接,但可以创建软链接,对目录的软链接会经常被用到
    b)软链接可以跨文件系统,硬链接不可以跨文件系统。

 4)怎么没的(源文件,软链接,硬链接与删除)
   a)删除软链接文件,对源文件及硬链接文件无任何影响;
   b)删除文件的硬链接文件,对源文件及软链接文件无任何影响;
   c)删除链接文件的源文件,对硬链接文件无影响,会导致其软链接失效(红底白字闪烁状);
   d)删除源文件及其硬链接文件,整个文件才会被"真正"的删除。
描述linux下软链接和硬链接的区别


文件删除原理

1)删除这个文件所有相关的硬链接-rm

2)这个文件的进程调用数也为0 

1.硬链接数量为0

2.进程调用数为0

技术分享图片
某个文件没有被彻底删除,导致的磁盘空间满了。

模拟思路

向/var/log/secure 追加8亿行
seq 800000000
?
[root@lewen-nb lewen]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       8.8G  8.8G     0 100% /
tmpfs           1.9G     0  1.9G   0% /dev/shm
/dev/sda1       190M   40M  141M  22% /boot
/dev/sdc         73K   14K   55K  21% /app/logs

#正常的排错过程。
[root@lewen-nb lewen]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       8.8G  8.8G     0 100% /
tmpfs           1.9G     0  1.9G   0% /dev/shm
/dev/sda1       190M   40M  141M  22% /boot
/dev/sdc         73K   14K   55K  21% /app/logs
[root@lewen-nb lewen]# du -sh /* |grep G
du: cannot access `/proc/2904/task/2904/fd/4‘: No such file or directory
du: cannot access `/proc/2904/task/2904/fdinfo/4‘: No such file or directory
du: cannot access `/proc/2904/fd/4‘: No such file or directory
du: cannot access `/proc/2904/fdinfo/4‘: No such file or directory
1.1G    /usr
7.4G    /var
[root@lewen-nb lewen]# du -sh /var/* |grep G
7.3G    /var/log
[root@lewen-nb lewen]# du -sh /var/log/* |grep G
7.3G    /var/log/secure
[root@lewen-nb lewen]# \rm -f /var/log/secure

#磁盘空间满了,但是du -sh /* | grep G 看不到大文件
[root@lewen-nb lewen]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       8.8G  8.8G     0 100% /
tmpfs           1.9G     0  1.9G   0% /dev/shm
/dev/sda1       190M   40M  141M  22% /boot
/dev/sdc         73K   14K   55K  21% /app/logs
[root@lewen-nb lewen]# du -sh /* |grep G
du: cannot access `/proc/2914/task/2914/fd/4‘: No such file or directory
du: cannot access `/proc/2914/task/2914/fdinfo/4‘: No such file or directory
du: cannot access `/proc/2914/fd/4‘: No such file or directory
du: cannot access `/proc/2914/fdinfo/4‘: No such file or directory
1.1G    /usr
某个文件没有被彻底删除,导致的磁盘空间满了。模拟思路
系统中某个文件没有被彻底删除。

如何找出硬链接数量为0,进程调用数不为0
[root@lewen-nb lewen]# lsof |grep delete
rsyslogd  1250      root    2w      REG                8,3 7803924480     130420 /var/log/secure (deleted)
软件名称                                                   文件大小              文件名
 (deleted)---标记 这个文件的硬链接数量为0,进程调用数不为0。

##重启对应的服务
[root@lewen-nb lewen]# /etc/init.d/rsyslog restart
Shutting down system logger:                               [  OK  ]
Starting system logger:                                    [  OK  ]
[root@lewen-nb lewen]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       8.8G  1.6G  6.9G  19% /
tmpfs           1.9G     0  1.9G   0% /dev/shm
/dev/sda1       190M   40M  141M  22% /boot
/dev/sdc         73K   14K   55K  21% /app/logs

磁盘空间不足-no space left on device
1.block满了正常-500G 存放505G视频
2.inode满了,大量的小文件
3.block 硬链接数量为0 进程调用数不为零  文件没有被彻底删除磁盘空间不足


linux修改、访问、改变时间简介

mtime  modified time 文件的修改时间 文件内容的变化时间

ctime  change   time 文件属性的改变时间 硬链接数量 文件大小 文件权限

atime  access   time 文件的访问时间     cat

技术分享图片
[root@lewen-nb ~]# ls -l lewen.txt
-rw-r--r--. 1 root root 17 Sep 25 16:47 lewen.txt
[root@lewen-nb ~]# stat lewen.txt
  File: `lewen.txt‘
  Size: 17            Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d    Inode: 262707      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-09-25 16:47:54.628044632 +0800
Modify: 2017-09-25 16:47:53.059040702 +0800
Change: 2017-09-25 16:47:53.101042388 +0800
[root@lewen-nb ~]# stat lewen.txt
  File: `lewen.txt‘
  Size: 17            Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d    Inode: 262707      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-09-25 16:47:54.628044632 +0800
Modify: 2017-09-25 16:47:53.059040702 +0800
Change: 2017-09-25 16:47:53.101042388 +0800
?
[root@lewen-nb ~]# echo hello >>lewen.txt
[root@lewen-nb ~]# stat lewen.txt
  File: `lewen.txt‘
  Size: 23            Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d    Inode: 262707      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-09-25 16:47:54.628044632 +0800
Modify: 2017-10-17 21:45:10.447937840 +0800
Change: 2017-10-17 21:45:10.447937840 +0800

#ctime  change time 
[root@lewen-nb ~]# stat lewen.txt
  File: `lewen.txt‘
  Size: 23            Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d    Inode: 262707      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-09-25 16:47:54.628044632 +0800
Modify: 2017-10-17 21:45:10.447937840 +0800
Change: 2017-10-17 21:45:10.447937840 +0800
[root@lewen-nb ~]# ln lewen.txt lewen.txt-hard
[root@lewen-nb ~]# stat lewen.txt
  File: `lewen.txt‘
  Size: 23            Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d    Inode: 262707      Links: 2
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-09-25 16:47:54.628044632 +0800
Modify: 2017-10-17 21:45:10.447937840 +0800
Change: 2017-10-17 21:47:35.328930646 +0800

#atime 


[root@lewen-nb ~]# stat lewen.txt
  File: `lewen.txt‘
  Size: 23            Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d    Inode: 262707      Links: 2
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-09-25 16:47:54.628044632 +0800
Modify: 2017-10-17 21:45:10.447937840 +0800
Change: 2017-10-17 21:47:35.328930646 +0800
[root@lewen-nb ~]# cat lewen.txt
爱生活 爱李
hello
[root@lewen-nb ~]# stat lewen.txt
  File: `lewen.txt‘
  Size: 23            Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d    Inode: 262707      Links: 2
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-10-17 21:50:13.969932450 +0800
Modify: 2017-10-17 21:45:10.447937840 +0800
Change: 2017-10-17 21:47:35.328930646 +0800
view

linux 基础 文件系统 用户权限

标签:ash   特点   abr   ini   请给出命令   close   .bashrc   空间不足   删除   

原文地址:https://www.cnblogs.com/wenyule/p/9969020.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!