Day 13
作者:翟玉龙
归档:课堂笔记
2019/3/18
快捷键:
Ctrl + 1 标题1
Ctrl + 2 标题2
Ctrl + 3 标题3
Ctrl + 4 实例
Ctrl + 5 程序代码
Ctrl + 6 正文
格式说明:
蓝色字体:注释
黄色背景:重要
绿色背景:注意
老男孩教育教学核心思想6重:重目标、重思路、重方法、重实践、重习惯、重总结
学无止境,老男孩教育成就你人生的起点!
联系方式:
网站运维QQ交流群:
Linux 385168604架构师390642196
Python 29215534大数据421358633
官方网站:
http://www.oldboyedu.com
目录
学无止境,老男孩教育成就你人生的起点!... 1
第1章 SELinux. 1
1.1 安全规则让Linux系统更安全的一套规则... 1
1.2 怎么关掉selinux. 1
1.2.1 临时关闭... 1
1.2.2 永久关闭... 1
第2章 老男孩思想之优秀的运维思想... 1
第3章 防火墙简介... 1
第4章 硬链接... 2
4.1 什么是硬连接?... 2
第5章 通配符知识与实践... 3
5.1 通配符... 3
5.1.1 基本含意... 3
通配符就是键盘上的一些特殊字符,实现某些特殊的功能... 3
5.1.2 适用范围... 3
[if !supportLists]第1章 [endif]SELinux
[if !supportLists]1.1 [endif]安全规则让Linux系统更安全的一套规则
但是这个规则太严格了,所以一般情况下都会关闭selinux
[if !supportLists]1.2 [endif]怎么关掉selinux
查看状态getenforce
[if !supportLists]1.2.1 [endif] 临时关闭
Setenforce 0
[if !supportLists]1.2.2 [endif] 永久关闭
/etc/selinux/config
[if !supportLists]第2章 [endif]防火墙简介
Linux 里的防火墙 C6 iptables C7 firewalld
作用:防护计算机 防止被入侵
Systemctl status firewalld.service
开机自启动4
Systemctl enable firewalld.service
开机不启动即使
Disable
C6用法
Chkconfig iptables[if !vml]
[endif]off
[if !supportLists]第3章 [endif]硬链接
[if !supportLists]3.1[endif] 什么是硬连接?
具有相同inode 节点号的文件互为硬链接
一个文件的两个入口。
[root@oldboyedu~]# ls -ldi test test/.
16964029drwxr-xr-x. 2 root root 4096 Oct 1 14:07test
16964029drwxr-xr-x. 2 root root 4096 Oct 1 14:07test/.
[root@oldboyedu/data]# ls -ldi oldboy
33631853drwxr-xr-x. 5 root root 45 Oct 4 21:03oldboy
[root@oldboyedu/data]# ls -ldi oldboy oldboy/. oldboy/test{1..3}/..
33631853drwxr-xr-x. 5 root root 45 Oct 4 21:03oldboy
33631853drwxr-xr-x. 5 root root 45 Oct 4 21:03oldboy/.
33631853drwxr-xr-x. 5 root root 45 Oct 4 21:03oldboy/test1/..
33631853drwxr-xr-x. 5 root root 45 Oct 4 21:03oldboy/test2/..
33631853drwxr-xr-x. 5 root root 45 Oct 4 21:03oldboy/test3/..
2.硬链接的原理
相同文件不同名字
3 测试
创建硬链接
Ln 原文件 硬链接文件
A 文件的硬链接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:01oldboy.tar.gz
33656257-rwxr-xr-x. 1 root root 14 Oct 1 11:07 test.txt
33631853drwxr-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
作用,备份 防止误删
Linux里不支持人工对目录创建硬链接
Linux 文件删除原理
[if !vml]
[endif]
[if !supportLists]1. [endif]静态文件,:没有进程或者程序正在访问的文件
所有的硬链接数为0(i_link) 即所有硬链接都被干掉了,包括自身
硬链接的数量的代表变量符号I_link
Rm -f
oldboy.txtt oldboy_hard_link 执行完,其实文件也没删
A.系统会定时清理没有文件名的inode
b.磁盘检查的时候会清理
c.当增加新文件是会优先占用没有文件名的inode
恢复工具:debugfs,ext3grep等等
但是亡羊补牢实不可取的,直接违反运维的三大职责
解决方法:多备份,操作前备份,异服务器备份和异地备份
[if !supportLists]2. [endif]动态文件:有程序或进程访问的文件
[if !supportLists]A. [endif]i_link为0
[if !supportLists]B. [endif]i_count为0 。i_count是进程调用文件的数量(引用计数),所有进程调用都要停止取消。
[if !supportLists]3. [endif]实践文件删除原理。
环境准备,命令集合如下:
mkdir -p /app/logs #<==创建用于挂载的目录。
dd if=/dev/zero of=/dev/sdc bs=8K count=10 #<==创建指定大小的文件。
mkfs.ext4 /dev/sdc #<==格式化。
mount -o loop /dev/sdc /app/logs #<==挂载。
df -h #<==检查挂载结果。
实践:
[root@oldboyedu /data]# cd /app/logs/
[root@oldboyedu /app/logs]# touch nginx.log
[root@oldboyedu /app/logs]# tail -fnginx.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
2
明明删除了,结果还是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 -fnginx.log
ln nginx.log nginx_hard.log
当前:
i_link=2
i_count=1
模拟把文件变大,让分区满
[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
分区满了:清理,删除。
删除源文件
[root@oldboyedu /app/logs]# rm -f nginx.log
结果:
i_link=1
i_count=1
ctrl+c 中断进程调用文件
结果:
i_link=1
i_count=0
删除硬链接文件
[root@oldboyedu /app/logs]# rm -fnginx_hard.log
结果:
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
软链接:
本质是快捷方式 指向原文件实体,本身和原文件是不同的文件
目录
必会面试题:
软链接和硬链接的区别?
第十章特殊符号
[if !supportLists]第4章 [endif]通配符知识与实践
[if !supportLists]4.1 [endif]通配符
[if !supportLists]4.1.1 [endif]基本含意
通配符就是键盘上的一些特殊字符,实现某些特殊的功能
例如可以用*来代表所有模糊查找系统中的文件
[if !supportLists]4.1.2 [endif]适用范围
命令行中普通命令或者脚本编程中。
[if !vml]
[endif]