zoukankan      html  css  js  c++  java
  • linux 基础 文件系统 用户权限


    描述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]# 
    m -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
  • 相关阅读:
    POJ 2002 Squares
    POJ 1840 Eqs
    POJ 1759 Garland
    UVA 572 Oil Deposits
    POJ 3278 Catch That Cow
    POJ 2488 A Knight's Journey
    UVA 699 The Falling Leaves
    [Poi1999] 原始生物
    [bzoj3033] 太鼓达人
    [bzoj1123] BLO
  • 原文地址:https://www.cnblogs.com/wenyule/p/9969020.html
Copyright © 2011-2022 走看看