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)刪除這個文件全部相關的硬連接-rmnode

2)這個文件的進程調用數也爲0  mysql

1.硬連接數量爲0linux

2.進程調用數爲0nginx

某個文件沒有被完全刪除,致使的磁盤空間滿了。

模擬思路

向/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 文件屬性的改變時間 硬連接數量 文件大小 文件權限sql

atime  access   time 文件的訪問時間     catshell

[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
相關文章
相關標籤/搜索