一士飒、 Selinux
1刊橘、什么是Selinux2? ?第二行結(jié)尾的(.)是標(biāo)識(shí)Selinux的符號(hào)
它是一個(gè) Linux 內(nèi)核模塊暇矫,也是 Linux 的一個(gè)安全子系統(tǒng)主之。Selinux 主要由美國(guó)國(guó)家安全局開(kāi)發(fā)
2择吊、linux查看方法getenforce?
enforcing
3、臨時(shí)關(guān)閉:setenforce
usage: setenforce [ Enforcing | Permissive | 1 | 0 ]
setenforce 0
4槽奕、永久關(guān)閉:vim /etc/selinux/config
disabled - No Selinux policy is loaded.
Selinux=disabled
二几睛、軟硬連接
33574978 -rw-------. 1 root root 1.5K Mar 4 13:57 anaconda-ks.cfg
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 第三列硬鏈接
1、什么是硬連接粤攒?
就是具有相同inode節(jié)點(diǎn)號(hào)的文件互為硬連接
2所森、創(chuàng)建硬鏈接:
a、ln 源文件 硬鏈接文件
b夯接、目錄硬連接
不支持人工創(chuàng)建目錄硬連接
c必峰、作用:
備份,防止誤刪
3钻蹬、軟鏈接:
本質(zhì)是快捷方式吼蚁,指向源文件實(shí)體,本身和源文件是不同的文件问欠。
a肝匆、目錄:是工作中的重點(diǎn)
工作中為什么會(huì)使用軟鏈接。
第一個(gè)用途:
安裝軟件:/application/nginx-1.10
過(guò)半年:/application/nginx-1.20
導(dǎo)致一個(gè)問(wèn)題顺献,工作中旗国,開(kāi)發(fā)等引用/application/nginx-1.10路徑。
安裝軟件:/application/nginx-1.10===>/application/nginx(讓開(kāi)發(fā)用)
過(guò)半年:? /application/nginx-1.20===>/application/nginx(讓開(kāi)發(fā)用)
第二個(gè)用途:
/etc/對(duì)應(yīng)的分區(qū)要滿(mǎn)了注整,沒(méi)法放很多文件能曾,但是程序還想通過(guò)/etc/目錄訪問(wèn)文件。
此時(shí)肿轨,我們可以把文件放入/opt/oldboy下寿冕,然后做一個(gè)到/etc/oldboy的軟鏈接。
三 椒袍、Linux文件刪除原理:
1驼唱、靜態(tài)文件:沒(méi)有進(jìn)程或程序正在訪問(wèn)的文件。
所有的硬鏈接數(shù)為0(i_link)驹暑,即所有硬鏈接都被干掉了玫恳,包括自身。
硬鏈接的數(shù)量的代表變量符號(hào)i_link
rm -f oldboy.txt oldboy_hard_link
執(zhí)行完 其實(shí)文件也沒(méi)刪优俘,關(guān)機(jī)停止運(yùn)行京办。
a.系統(tǒng)定時(shí)清理沒(méi)有文件名的inode。
b.磁盤(pán)檢查會(huì)清理帆焕。
c.增加新文件時(shí)優(yōu)先占用沒(méi)有文件名的inode惭婿。
恢復(fù)的工具:debugfs,ext3grep等等。
多備份,操作前備份审孽,異服務(wù)器和異地備份县袱。
2浑娜、動(dòng)態(tài)文件:有程序或進(jìn)程訪問(wèn)的文件
刪除原理:
a.所有硬鏈接刪除佑力。i_link為0.
b..i_count是進(jìn)程調(diào)用文件的數(shù)量(引用計(jì)數(shù))。所有進(jìn)程調(diào)用都要停止取消筋遭。i_count為0
3打颤、實(shí)踐文件刪除原理
環(huán)境準(zhǔn)備,命令集合如下:
mkdir -p /app/logs? ? ? ? ? ? ? ? ? ? ? ? ? #<==創(chuàng)建用于掛載的目錄漓滔。
dd if=/dev/zero of=/dev/sdc bs=8K? count=10? #<==創(chuàng)建指定大小的文件编饺。
mkfs.ext4 /dev/sdc? ? ? ? ? ? ? ? ? ? ? ? ? #<==格式化。
mount -o loop /dev/sdc /app/logs? ? ? ? ? ? #<==掛載响驴。
df -h? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #<==檢查掛載結(jié)果透且。
實(shí)踐:
[root@oldboyedu /data]# cd /app/logs/
[root@oldboyedu /app/logs]# touch nginx.log
[root@oldboyedu /app/logs]# tail -f nginx.log
[root@oldboyedu /app/logs]# cat /etc/services >>nginx.log
cat: write error: No space left on device
[root@oldboyedu /app/logs]# df -h
Filesystem? ? ? Size? Used Avail Use% Mounted on
/dev/sda3? ? ? ? 19G? 1.9G? 18G? 10% /
devtmpfs? ? ? ? 980M? 80K? 980M? 1% /dev
tmpfs? ? ? ? ? 991M? ? 0? 991M? 0% /dev/shm
tmpfs? ? ? ? ? 991M? 9.5M? 981M? 1% /run
tmpfs? ? ? ? ? 991M? ? 0? 991M? 0% /sys/fs/cgroup
/dev/sda1? ? ? 253M? 136M? 118M? 54% /boot
tmpfs? ? ? ? ? 199M? ? 0? 199M? 0% /run/user/0
/dev/loop0? ? ? 73K? 71K? ? 0 100% /app/logs
明明刪除了,結(jié)果還是100%豁鲤。
[root@oldboyedu /app/logs]# rm -f nginx.log
[root@oldboyedu /app/logs]# lsof|grep nginx
tail? ? ? 7927? ? ? ? root? ? 3r? ? ? REG? ? ? ? ? ? ? ? 7,0? ? 57344? ? ? ? 12 /app/logs/nginx.log (deleted)
[root@oldboyedu /app/logs]# df -h
Filesystem? ? ? Size? Used Avail Use% Mounted on
/dev/sda3? ? ? ? 19G? 1.9G? 18G? 10% /
devtmpfs? ? ? ? 980M? 80K? 980M? 1% /dev
tmpfs? ? ? ? ? 991M? ? 0? 991M? 0% /dev/shm
tmpfs? ? ? ? ? 991M? 9.5M? 981M? 1% /run
tmpfs? ? ? ? ? 991M? ? 0? 991M? 0% /sys/fs/cgroup
/dev/sda1? ? ? 253M? 136M? 118M? 54% /boot
tmpfs? ? ? ? ? 199M? ? 0? 199M? 0% /run/user/0
/dev/loop0? ? ? 73K? 71K? ? 0 100% /app/logs
重來(lái):
模擬進(jìn)程讀文件:
[root@oldboyedu /app/logs]# touch nginx.log
[root@oldboyedu /app/logs]# tail -f nginx.log
ln nginx.log nginx_hard.log
當(dāng)前:
i_link=2
i_count=1
模擬把文件變大秽誊,讓分區(qū)滿(mǎn)
[root@oldboyedu /app/logs]# cat /etc/services >>nginx.log
cat: write error: No space left on device
[root@oldboyedu /app/logs]# df -h
Filesystem? ? ? Size? Used Avail Use% Mounted on
/dev/sda3? ? ? ? 19G? 1.9G? 18G? 10% /
devtmpfs? ? ? ? 980M? 80K? 980M? 1% /dev
tmpfs? ? ? ? ? 991M? ? 0? 991M? 0% /dev/shm
tmpfs? ? ? ? ? 991M? 9.5M? 981M? 1% /run
tmpfs? ? ? ? ? 991M? ? 0? 991M? 0% /sys/fs/cgroup
/dev/sda1? ? ? 253M? 136M? 118M? 54% /boot
tmpfs? ? ? ? ? 199M? ? 0? 199M? 0% /run/user/0
/dev/loop0? ? ? 73K? 71K? ? 0 100% /app/logs
分區(qū)滿(mǎn)了:清理,刪除琳骡。
刪除源文件
[root@oldboyedu /app/logs]# rm -f nginx.log
結(jié)果:
i_link=1
i_count=1
ctrl+c 中斷 進(jìn)程調(diào)用文件
結(jié)果:
i_link=1
i_count=0
刪除硬鏈接文件
[root@oldboyedu /app/logs]# rm -f nginx_hard.log
結(jié)果:
i_link=0
i_count=0
[root@oldboyedu /app/logs]# df -h
Filesystem? ? ? Size? Used Avail Use% Mounted on
/dev/sda3? ? ? ? 19G? 1.9G? 18G? 10% /
devtmpfs? ? ? ? 980M? 80K? 980M? 1% /dev
tmpfs? ? ? ? ? 991M? ? 0? 991M? 0% /dev/shm
tmpfs? ? ? ? ? 991M? 9.5M? 981M? 1% /run
tmpfs? ? ? ? ? 991M? ? 0? 991M? 0% /sys/fs/cgroup
/dev/sda1? ? ? 253M? 136M? 118M? 54% /boot
tmpfs? ? ? ? ? 199M? ? 0? 199M? 0% /run/user/0
/dev/loop0? ? ? 73K? 14K? 54K? 21% /app/logs
必考
Web服務(wù)器磁盤(pán)滿(mǎn)故障深入解析锅论,地址為
http://oldboy.blog.51cto.com/2561410/612351
1、掌握Linux文件屬性的各個(gè)列的含義(ls -lhi結(jié)果)及對(duì)應(yīng)知識(shí)概念楣号。
第一列? 索引節(jié)點(diǎn)inode
第二列 drwx r-x? r--? ? ? ? ? ? ? ? 用戶(hù)對(duì)文件的權(quán)限? ?r? ?讀? ? ?w寫(xiě)? ? ?x 執(zhí)行? - 是沒(méi)權(quán)限
d是文件類(lèi)型? ? 后面分三組? 第一組是用戶(hù)的權(quán)限? 第二組是 用戶(hù)組的權(quán)限? 第三組是其他用戶(hù)的權(quán)限
inode索引節(jié)點(diǎn)是文件的索引接點(diǎn)是唯一的
block是存放文件內(nèi)容的一個(gè)文件最少占用一個(gè)block
一個(gè)文件必須有一個(gè)inode和一個(gè)或多個(gè)block組成
2最易、磁盤(pán)空間不足故障的多重判斷和解決(面試常考)炫狱。
3藻懒、請(qǐng)描述軟鏈接和硬鏈接的特點(diǎn)及區(qū)別(面試常考)视译。
1)分類(lèi):在linux系統(tǒng)中束析。鏈接分為兩種,軟連接和硬連接憎亚。
2)概念:硬鏈接:就是具有相同inode節(jié)點(diǎn)號(hào)的文件互為硬連接
? ? ? ? ? ? ? ? 軟連接:本質(zhì)是快捷方式员寇,指向源文件實(shí)體,本身和源文件是不同的文件
3)創(chuàng)建:ln命令是創(chuàng)建硬連接的? ln -s 是創(chuàng)建軟連接的
4)特點(diǎn):不能對(duì)目錄創(chuàng)建硬連接第美,但可以創(chuàng)建軟鏈接
? ? ? ? ? ? ? ?軟鏈接可以跨文件系統(tǒng)? 蝶锋,硬鏈接不可以
? ? ? ? ? ? ? ?刪除軟鏈接對(duì)源文件和硬連接無(wú)任何影響
? ? ? ? ? ? ? ?刪除文件的硬鏈接對(duì)文件的軟鏈接也無(wú)影響,但刪除源文件對(duì)硬鏈接無(wú)影? ? ? ? ? ? ? ? ? ? ? ? ? 響什往,會(huì)導(dǎo)致軟鏈接不能使用(白底紅字閃爍)
? ? ? ? ? ? ? ? 同時(shí)刪除源文件和硬鏈接會(huì)導(dǎo)致整個(gè)文件正真的刪除
4扳缕、請(qǐng)描述Linux系統(tǒng)文件刪除的原理(面試常考)。