老男孩Linux云計算58期-day13-1
[root@oldboyedu ~]# ls -lhi
total 32K
33631870 -rw-r--r--. 1 root root? ? ? 4 Mar 13? 2019 a.txt
第二列結(jié)尾的. 是標識selinux的符號
1咖杂、selinux是什么壕探?
安全規(guī)則惶我,讓Linux系統(tǒng)更安全的一套規(guī)則呀狼。
這個規(guī)則太嚴格了锁摔,一般的情況下都會關(guān)閉selinux。
自己開啟防火墻啊际插,用其他手段來實現(xiàn)同樣的安全目的碘耳。
2、怎么關(guān)掉Selinux框弛?
查看方法:
[root@oldboyedu ~]# getenforce
Enforcing
臨時關(guān)掉:
[root@oldboyedu ~]# setenforce
usage:? setenforce [ Enforcing | Permissive | 1 | 0 ]
[root@oldboyedu ~]# setenforce 0
[root@oldboyedu ~]# getenforce
Permissive
永久關(guān)閉:
vim /etc/selinux/config
[root@oldboyedu ~]# grep dis /etc/selinux/config
#? ? disabled - No SELinux policy is loaded.
SELINUX=disabled
Linux里防火墻C6 iptables? C7 firewalld
作用:防護計算機辛辨,防止被入侵。
systemctl status firewalld.service
開啟firewalld(C6 service iptables start 或者/etc/init.d/iptables start)
[root@oldboyedu ~]# systemctl start firewalld.service
[root@oldboyedu ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
? Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
? Active: active (running) since Sun 2020-10-04 20:48:49 CST; 1s ago
? ? Docs: man:firewalld(1)
Main PID: 7003 (firewalld)
? CGroup: /system.slice/firewalld.service
? ? ? ? ? └─7003 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
Oct 04 20:48:48 oldboyedu systemd[1]: Starting firewalld - dynamic firewall daemon...
Oct 04 20:48:49 oldboyedu systemd[1]: Started firewalld - dynamic firewall daemon.
讓firewalld開機自啟動
[root@oldboyedu ~]# systemctl enable firewalld.service
Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service.
C6用法:chkconfig iptables off
C7就是一個命令systemctl
自學(xué)能力:總結(jié)兩個命令systemctl和chkconfig瑟枫。
[root@oldboyedu ~]# ls -lhi
total 32K
33631870 -rw-r--r--. 1 root root? ? ? 4 Mar 13? 2019 a.txt
? ? ? ? ? ? ? ? ? 硬鏈接數(shù)
1斗搞、什么是硬鏈接?
具有相同inode節(jié)點號的文件互為硬鏈接慷妙。
一個文件的兩個入口僻焚。
[root@oldboyedu ~]# ls -ldi test test/.
16964029 drwxr-xr-x. 2 root root 4096 Oct? 1 14:07 test
16964029 drwxr-xr-x. 2 root root 4096 Oct? 1 14:07 test/.
[root@oldboyedu /data]# ls -ldi oldboy
33631853 drwxr-xr-x. 5 root root 45 Oct? 4 21:03 oldboy
[root@oldboyedu /data]# ls -ldi oldboy oldboy/. oldboy/test{1..3}/..
33631853 drwxr-xr-x. 5 root root 45 Oct? 4 21:03 oldboy
33631853 drwxr-xr-x. 5 root root 45 Oct? 4 21:03 oldboy/.
33631853 drwxr-xr-x. 5 root root 45 Oct? 4 21:03 oldboy/test1/..
33631853 drwxr-xr-x. 5 root root 45 Oct? 4 21:03 oldboy/test2/..
33631853 drwxr-xr-x. 5 root root 45 Oct? 4 21:03 oldboy/test3/..
2、硬鏈接原理膝擂。
3溅呢、測試
創(chuàng)建硬鏈接:
ln 源文件 硬鏈接文件
a.文件硬鏈接
[root@oldboyedu /data]# echo "I am oldboy." >oldboy.txt
[root@oldboyedu /data]# cat oldboy.txt
I am oldboy.
[root@oldboyedu /data]# ln oldboy.t
oldboy.tar.gz? oldboy.txt? ?
[root@oldboyedu /data]# ln oldboy.txt oldboy_hard_link
[root@oldboyedu /data]# ls -lirt
total 20
33631860 -rw-r--r--. 1 root root? 0 Oct? 1 00:19 5.txt
33631855 -rw-r--r--. 1 root root? 0 Oct? 1 00:19 4.txt
33631847 -rw-r--r--. 1 root root? 0 Oct? 1 00:19 3.txt
33631845 -rw-r--r--. 1 root root? 0 Oct? 1 00:19 2.txt
33631841 -rw-r--r--. 1 root root? 0 Oct? 1 00:19 1.txt
33656236 -rw-r--r--. 1 root root? 18 Oct? 1 09:01 paichu.txt
33631869 -rw-r--r--. 1 root root 187 Oct? 1 09:01 oldboy.tar.gz
33656257 -rwxr-xr-x. 1 root root? 14 Oct? 1 11:07 test.txt
33631853 drwxr-xr-x. 5 root root? 45 Oct? 4 21:03 oldboy
33656238 -rw-r--r--. 2 root root? 13 Oct? 4 21:10 oldboy.txt
33656238 -rw-r--r--. 2 root root? 13 Oct? 4 21:10 oldboy_hard_link
作用:
1、備份猿挚,防止誤刪。
[root@oldboyedu /data]# ln /etc/hostname /opt/hostname
[root@oldboyedu /data]# cat /opt/hostname
oldboyedu
[root@oldboyedu /data]# rm -f /etc/hostname
[root@oldboyedu /data]# cat /etc/hostname
cat: /etc/hostname: No such file or directory
[root@oldboyedu /data]# cat /opt/hostname
oldboyedu
[root@oldboyedu /data]# ln /opt/hostname /etc/hostname
[root@oldboyedu /data]# cat /etc/hostname
oldboyedu
b.目錄硬鏈接
不支持人工創(chuàng)建目錄硬鏈接驶鹉。
[root@oldboyedu /data]# ln oldboy oldgirl
ln: ‘oldboy’: hard link not allowed for directory
老男孩的思考:
/etc/目錄绩蜻,對應(yīng)一個分區(qū)
/home目錄,還可能對應(yīng)一個分區(qū)室埋。
ln /etc/ /home/oldboy
軟鏈接:
本質(zhì)是快捷方式办绝,指向源文件實體,本身和源文件是不同的文件姚淆。
實踐:
文件
[root@oldboyedu /data]# !echo
echo "I am oldboy." >oldboy.txt
[root@oldboyedu /data]# cat oldboy.txt
I am oldboy.
[root@oldboyedu /data]# ln -s oldboy.txt? oldboy_soft_link
目錄:是工作中的重點
[root@oldboyedu /data]# mkdir oldboy
[root@oldboyedu /data]# touch oldboy/test.txt
[root@oldboyedu /data]# ln -s oldboy? oldboy_soft_link_dir
[root@oldboyedu /data]# ls oldboy_soft_link_dir/
test.txt
[root@oldboyedu /data]# ls oldboy
test.txt
工作中為什么會使用軟鏈接孕蝉。
第一個用途:
安裝軟件:/application/nginx-1.10
過半年:/application/nginx-1.20
導(dǎo)致一個問題,工作中腌逢,開發(fā)等引用/application/nginx-1.10路徑降淮。
安裝軟件:/application/nginx-1.10===>/application/nginx(讓開發(fā)用)
過半年:? /application/nginx-1.20===>/application/nginx(讓開發(fā)用)
第二個用途:
/etc/對應(yīng)的分區(qū)要滿了,沒法放很多文件搏讶,但是程序還想通過/etc/目錄訪問文件佳鳖。
此時霍殴,我們可以把文件放入/opt/oldboy下,然后做一個到/etc/oldboy的軟鏈接系吩。
[root@oldboyedu /data]# mkdir /opt/oldboy
[root@oldboyedu /data]# touch /opt/oldboy/{1..3}.txt
[root@oldboyedu /data]# ln -s /opt/oldboy/ /etc/oldboy
[root@oldboyedu /data]# ls /etc/oldboy
1.txt? 2.txt? 3.txt
[root@oldboyedu /data]# ll /opt/oldboy
total 0
-rw-r--r--. 1 root root 0 Oct? 4 22:02 1.txt
-rw-r--r--. 1 root root 0 Oct? 4 22:02 2.txt
-rw-r--r--. 1 root root 0 Oct? 4 22:02 3.txt
必會面試題:軟鏈接和硬鏈接的區(qū)別来庭?
Linux文件刪除原理:
1、靜態(tài)文件:沒有進程或程序正在訪問的文件穿挨。
所有的硬鏈接數(shù)為0(i_link)月弛,即所有硬鏈接都被干掉了,包括自身科盛。
硬鏈接的數(shù)量的代表變量符號i_link
rm -f oldboy.txt oldboy_hard_link
執(zhí)行完 其實文件也沒刪帽衙,關(guān)機停止運行。
a.系統(tǒng)定時清理沒有文件名的inode土涝。
b.磁盤檢查會清理佛寿。
c.增加新文件時優(yōu)先占用沒有文件名的inode。
恢復(fù)的工具:debugfs,ext3grep等等但壮。
亡羊補牢其實不可取的冀泻,違反運維的三大核心原則。
多備份蜡饵,操作前備份弹渔,異服務(wù)器和異地備份。
流浪地球溯祸,人類備份肢专。
光一秒30w公里
月地距離? ? 38萬公里
日地距離? ? 1.5億公里 8分鐘
太陽系大小?
第二近的恒星 4光年
地球 46億年了。42億前焦辅。
太陽處于中年 壽命70億年博杖。大到太陽吞噬地球。
銀河系大小 10萬光年
宇宙大小? 可探測到的直徑1000億光年
2筷登、動態(tài)文件:有程序或進程訪問的文件
刪除原理:
a.所有硬鏈接刪除剃根。i_link為0.
b..i_count是進程調(diào)用文件的數(shù)量(引用計數(shù))盗飒。所有進程調(diào)用都要停止取消物遇。i_count為0
3、實踐文件刪除原理
環(huá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é)果渣慕。
實踐:
[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
重來:
模擬進程讀文件:
[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ū)滿
[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ū)滿了:清理旱物,刪除。
刪除源文件
[root@oldboyedu /app/logs]# rm -f nginx.log
結(jié)果:
i_link=1
i_count=1
ctrl+c 中斷 進程調(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ù)器磁盤滿故障深入解析宵呛,地址為
http://oldboy.blog.51cto.com/2561410/612351
老師講的就是你遇到的,你學(xué)習(xí)時遇到的就是你遇到的夕凝。
1宝穗、軟硬連接區(qū)別。
2码秉、文件刪除原理逮矛。
1)掌握Linux文件屬性的各個列的含義(ls -lhi結(jié)果)及對應(yīng)知識概念。
2)磁盤空間不足故障的多重判斷和解決(面試匙考)须鼎。
3)請描述軟鏈接和硬鏈接的特點及區(qū)別(面試常考)府蔗。
4)請描述Linux系統(tǒng)文件刪除的原理(面試辰兀考)。
通配符知識:
1姓赤、基本含義
通配符簡單說就是鍵盤上的一些特殊字符赡译,可以實現(xiàn)某些特殊的功能,
例如不铆,可以用*代表所有蝌焚,來模糊搜索系統(tǒng)中的文件。
2誓斥、范圍:通配符試用范圍是命令行中【普通命令】或腳本編程中只洒。
3、
第一組 模糊匹配:
準備:
[root@oldboyedu /data]# touch a.txt b.txt aa.txt test.txt
[root@oldboyedu /data]# ls
aa.txt? a.txt? b.txt? test.txt
* 所有
兩個5000工資? 保險公積金? 多交1600以上 13200
一個10000的? 11600
筆記本多發(fā)了一個 位置多占一個 電多用 管理復(fù)雜了劳坑。
[root@oldboyedu /data]# a="oldboy"
[root@oldboyedu /data]# echo '$a'
$a
[root@oldboyedu /data]# echo "$a"
oldboy
[root@oldboyedu /data]# echo $a
oldboy
[root@oldboyedu /data]# echo "$a is a teaher."
oldboy is a teaher.
[root@oldboyedu /data]# echo $a is a teacher.
oldboy is a teacher.
[root@oldboyedu /data]# echo date
date
[root@oldboyedu /data]# echo `date`
Sun Oct 4 23:54:38 CST 2020
[root@oldboyedu /data]# 希望系統(tǒng)把字符串當(dāng)做命令就用反引號