第1章 軟硬鏈接
1.1 硬鏈接
1.1.1 含義
多個文件擁有相同的inode號碼
硬鏈接即文件的多個入口
1.1.2 作用
防止你誤刪除文件
1.1.3 如何創建硬鏈接
ln 命令,前面是源文件 后面是創建的鏈接文件
[root@znix clsn]# ln clsn.txt clsn.txt-hard
查看兩文件的inode號相同。
[root@znix clsn]# ls -lhi clsn.txt clsn.txt-hard
151273 -rw-r--r-- 2 root root 607 Aug 30 09:13 clsn.txt
151273 -rw-r--r-- 2 root root 607 Aug 30 09:13 clsn.txt-hard
1.2 軟連接
1.2.1 含義
為了快捷,省事,方便使用
軟連接中存放的是源文件的位置
1.2.2 創建軟連接
使用ln -s 命令創建軟連接
[root@znix clsn]# ln -s clsn.txt clsn.txt-soft
查看軟硬鏈接的inode號不相同
但是同時指向的是同一文件
[root@znix clsn]# ll -i clsn*
151273 -rw-r--r-- 2 root root 607 Aug 30 09:13 clsn.txt
132910 -rw-r--r-- 1 root root 607 Aug 30 09:14 clsn.txt.bak
151273 -rw-r--r-- 2 root root 607 Aug 30 09:13 clsn.txt-hard
132951 lrwxrwxrwx 1 root root 13 Aug 30 09:22 clsn.txt-soft -> clsn.txt
1.3 軟連接與硬鏈接的區別
1.3.1 含義
軟鏈接:
軟連接相當於快捷方式
里面存放的是源文件的位置
硬鏈接:
在同一個分區中,多個文件擁有相同的inode號
1.3.2 創建方式不同
ln 創建硬鏈接
ln -s 軟連接
1.3.3 不同的特點
1)軟連接可以隨意創建
2)不能對目錄創建硬鏈接
3)對文件創建硬鏈接可以防止文件被誤刪除
1.3.4 如何刪除
1)刪除文件的硬鏈接,文件可以繼續使用
2)只有把這個文件的所有硬鏈接都刪除才可
3)只刪除源文件軟連接無法使用
4)只刪除軟連接對文件沒有影響
第2章 文件刪除原理
2.1 徹底刪除一個文件
1.硬鏈接數為0 與這個文件有關的所有硬鏈接都被刪除。
a) 使用rm目錄進行刪除
2. 進程調用數為0,沒有人在使用這個文件才能釋放磁盤空間。
a) 使用lsof 查看誰在使用這文件
b) 重啟對應的軟件/服務就能釋放磁盤
2.2 查看某個文件是否總有人在用
使用lsof命令可以列出所有正在使用的文件和相應的進程
[root@znix ~]# lsof /var/log/secure
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rsyslogd 1262 root 4w REG 8,3 1927 270856 /var/log/secure
[root@znix ~]# lsof |grep message
rsyslogd 1262 root 1w REG 8,3 1044 270855 /var/log/messages
2.3 重啟對應的軟件/服務
找到軟件對應的管理地址,讓軟件重啟,釋放空間。
[root@znix ~]# /etc/init.d/rsyslog
Usage: /etc/init.d/rsyslog {start|stop|restart|condrestart|try-restart|reload|force-reload|status}
2.4 磁盤空間滿了(三種情況)
inode滿了……查找出系統目錄比較大(1M)
block滿了……使用du -sh /* 一層一層找,把較大的文件刪除
硬鏈接數為0,進程調用數不為0
使用 lsof |grep delete 查看占用的文件
2.5 故障案例
沒有被徹底刪除-硬鏈接數為0,進程調用數不為零
2.5.1 環境
向 /var/log/message中放入大量數據
seq 100000000 >>/var/log/messages
2.5.2 查看此時此刻磁盤使用情況
[root@znix apache]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 3.9G 3.7G 59% /
tmpfs 238M 0 238M 0% /dev/shm
/dev/sda1 190M 40M 141M 22% /boot
2.5.3 刪除文件
[root@znix apache]# \rm -f /var/log/messages
2.5.4 檢查空間沒有被釋放
[root@znix apache]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 3.9G 3.7G 59% /
tmpfs 238M 0 238M 0% /dev/shm
/dev/sda1 190M 40M 141M 22% /boot
2.5.5 查看被刪除(硬鏈接數為0)但是還被進程調用的文件
[root@znix apache]# lsof |grep delete
rsyslogd 1168 root 1w REG 8,3 889335632 259962 /var/log/messages (deleted)
2.5.6 重啟對應的服務
[root@znix apache]# /etc/init.d/rsyslog restart
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
查看磁盤空間
[root@znix apache]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 1.5G 6.9G 18% /
tmpfs 238M 0 238M 0% /dev/shm
/dev/sda1 190M 40M 141M 22% /boot
第3章 找出某個文件的其他的硬鏈接
使用find命令 -inum參數找inode號碼,找到相同的inode 互為硬鏈接。
[root@znix ~]# ls -lhi test.txt
260141 -rw-r--r--. 2 root root 265 Aug 29 19:16 test.txt
[root@znix ~]# find /* -type f -inum 260141
/root/test.txt
/root/test.txt-hard
第4章 三種時間戳
4.1 含義
Modify mtime修改時間 (最常用) 文件的內容 增加 刪除 修改改變
Change ctime屬性變更時間 文件屬性發生改變時更改
Access atime訪問時間 查看文件的時間 (只有文件內容有修改時才會改變)
4.2 使用stat命令查看文件的信息
[root@znix ~]# stat clsn.txt
File: `clsn.txt'
Size: 237 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 16976 Links: 2
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-08-28 11:45:26.734849384 +0800
Modify: 2017-08-28 11:45:26.734849384 +0800
Change: 2017-08-30 11:30:27.783364422 +0800
4.3 修改mtime&change
[root@znix ~]# echo "123">>clsn.txt
[root@znix ~]# stat clsn.txt
File: `clsn.txt'
Size: 241 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 16976 Links: 2
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-08-28 11:45:26.734849384 +0800
Modify: 2017-08-30 11:40:57.384368932 +0800
Change: 2017-08-30 11:40:57.384368932 +0800
4.4 修改ctime (屬性變更時間)
[root@znix ~]# ln clsn.txt clsn.txt-hard
[root@znix ~]# stat clsn.txt
File: `clsn.txt'
Size: 241 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 16976 Links: 3
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-08-28 11:45:26.734849384 +0800
Modify: 2017-08-30 11:40:57.384368932 +0800
Change: 2017-08-30 11:42:32.981364780 +0800
4.5 atime修改
[root@znix ~]# tail -1 clsn.txt
123
[root@znix ~]# stat clsn.txt
File: `clsn.txt'
Size: 241 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 16976 Links: 3
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-08-30 11:43:15.288357930 +0800
Modify: 2017-08-30 11:40:57.384368932 +0800
Change: 2017-08-30 11:42:32.981364780 +0800
第5章 chkconfig命令相關
chkconfig命令實際上控制的是/etc/rc3.d/(3運行模式下)下的軟連接。通過不通的軟連接,實現不通的控制。實際受/etc/init.d/下腳本的關系。
5.1 執行chkconfig iptables on & chkconfig iptables off之后發生了什么?
執行chkconfig iptables on后/etc/rc3.d/下的/etc/init.d/iptables改為S08iptables
[root@znix rc3.d]# chkconfig iptables on
[root@znix rc3.d]# chkconfig |grep ipt
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@znix rc3.d]# ls -l /etc/rc3.d/ |grep ipt
lrwxrwxrwx 1 root root 18 Aug 30 12:03 S08iptables -> ../init.d/iptables
執行chkconfig iptables off /etc/rc3.d/下的/etc/init.d/iptables軟連接改為K92iptables
[root@znix rc3.d]# chkconfig iptables off
[root@znix rc3.d]# chkconfig |grep ipt
iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@znix rc3.d]# ls -l /etc/rc3.d/ |grep ipt
lrwxrwxrwx 1 root root 18 Aug 30 12:04 K92iptables -> ../init.d/iptables
iptables 開機自啟動 軟連接 S開頭
iptables 開機不自啟動 軟連接 K開頭
5.2 讓一個軟件開機自啟動
1)把腳本放入/etc/rc.local
2)通過chkconfig 管理命令或腳本,讓他開機自啟動
5.3 如何讓一個服務或命令通過chkconfig管理
5.3.1 腳本必須放在/etc/init.d/目錄下面
[root@znix rc3.d]# echo "hostname" > /etc/init.d/clsnd
5.3.2 必須寫出chkconfig格式
寫出chkconfig 才能被chkconfig管理
hkconfig: 2345 99 99
默認在哪幾個運行級別啟動 開機順序 關機順序
自己創建的開機順序一般寫99 ,99為最后一個
[root@znix rc3.d]# cat /etc/init.d/clsnd
#!/bin/sh
#
#
# chkconfig: 2345 99 99
#
# description: print hostname
hostname
5.3.3 給這個腳本添加上執行的權限
使用chmod命令修改文件權限
需要有可執行的權限,不然無法執行
[root@znix rc3.d]# chmod +x /etc/init.d/clsnd
[root@znix rc3.d]# ll /etc/init.d/clsnd
-rwxr-xr-x 1 root root 9 Aug 30 12:22 /etc/init.d/clsnd
5.3.4 添加腳本到chkconfig管理
[root@znix rc3.d]# chkconfig --add clsnd
5.3.5 查看狀態
改為開機自啟動
[root@znix rc3.d]# chkconfig |grep old
clsnd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
5.3.6 查看/etc/rc3.d/目錄生成相對應的軟連接
[root@znix rc3.d]# ls -l /etc/rc3.d/ |grep old
lrwxrwxrwx 1 root root 17 Aug 30 12:38 S99clsnd -> ../init.d/clsnd