day13课后笔记

老男孩思想之优秀的运维习惯

1、内容尽量复制,以减少错误。

2、操作前备份,操作后检查。

3、使用中记忆。

4、眼睛里一定不要放过输出的英文

5、永远不要重启Linux

老男孩思想之如何解决拖延症?

1、把刀把交给别人。

      破釜沉舟,不留后路。

      a.告诉别人如果做不到,我就给你什么好处。

      b.定制目标,然后告诉身边的人。

      c.先把五百放人家那,做到了还给你,做不到就不用给我。

2、塑造价值观

      a.正向价值观:多想做到价值观的好处。

        拿到一万的工作。

        找个女朋友

        有点面子

        买车、买房。

          父母也有面子。

        b.负面价值观

          谁欺负你,

          谁看不起你,让他狗眼看人低。

  3、让你最在意你的人逼你(对你好的人)       

selinux:

[root@oldboyedu ~]# ls -lhi

total 32K

33631870 -rw-r--r--. 1 root root      4 Mar 13  2019 a.txt

第二列结尾的. 是标识selinux的符号

1、selinux是什么?

安全规则,让Linux系统更安全的一套规则。

这个规则太严格了,一般的情况下都会关闭selinux。

自己开启防火墙啊,用其他手段来实现同样的安全目的。

2、怎么关掉Selinux?

查看方法:

[root@oldboyedu ~]# getenforce

Enforcing

临时关掉:

[root@oldboyedu ~]# setenforce

usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]

[root@oldboyedu ~]# setenforce 0

[root@oldboyedu ~]# getenforce

Permissive

永久关闭:

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)

让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

硬链接:

1、什么是硬链接?

具有相同inode节点号的文件互为硬链接。

一个文件的两个入口。

2、硬链接原理。

3、测试

创建硬链接:

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

作用:

1、备份,防止误删。

b.目录硬链接

不支持人工创建目录硬链接。

软链接:

本质是快捷方式,指向源文件实体,本身和源文件是不同的文件。

实践:

文件

[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

工作中为什么会使用软链接。

第一个用途:

安装软件:/application/nginx-1.10

过半年:/application/nginx-1.20

导致一个问题,工作中,开发等引用/application/nginx-1.10路径。

安装软件:/application/nginx-1.10===>/application/nginx(让开发用)

过半年:  /application/nginx-1.20===>/application/nginx(让开发用)

第二个用途:

/etc/对应的分区要满了,没法放很多文件,但是程序还想通过/etc/目录访问文件。

此时,我们可以把文件放入/opt/oldboy下,然后做一个到/etc/oldboy的软链接。

Linux文件删除原理:

1、静态文件:没有进程或程序正在访问的文件。

所有的硬链接数为0(i_link),即所有硬链接都被干掉了,包括自身。

硬链接的数量的代表变量符号i_link

rm -f oldboy.txt oldboy_hard_link

执行完 其实文件也没删,关机停止运行。

a.系统定时清理没有文件名的inode。

b.磁盘检查会清理。

c.增加新文件时优先占用没有文件名的inode。

恢复的工具:debugfs,ext3grep等等。

亡羊补牢其实不可取的,违反运维的三大核心原则。

多备份,操作前备份,异服务器和异地备份。

2、动态文件:有程序或进程访问的文件

删除原理:

a.所有硬链接删除。i_link为0.

b..i_count是进程调用文件的数量(引用计数)。所有进程调用都要停止取消。i_count为0

3、实践文件删除原理

环境准备,命令集合如下:

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 /app/logs]# touch nginx.log

[root@oldboyedu /app/logs]# tail -f nginx.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% /rutmpfs          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 -f nginx_hard.log

结果:

i_link=0

i_count=0

必会面试题:软链接和硬链接的区别?

可从以下几个方面去答:

1)分类:在Linux系统中,链接分为两种:一种被称为硬链接,一种被称为软链接或符号链接。

2)概念:硬链接文件与源文件的inode节点号相同,而软链接文件相当于Windows下面的快捷方式。

3)创建:默认不带参数的情况下,ln命令创建的是硬链接,带-s参数的ln命令创建的是软链接。

4)特点:a.不能对目录创建硬链接,但可以创建软链接,对目录的软链接会经常被用到。

              b.软链接可以跨文件系统,硬链接不可以跨文件系统。

             c.删除软链接文件,对源文件及硬链接无任何影响。

             d.删除文件的硬链接文件,对源文件及软链接无任何影响。

             e.删除链接文件的源文件,对硬链接文件无影响,会导致其软链接失效(红底白字闪烁状)。

             f.同时删除源文件及其硬链接文件,整个文件才会被真正删除。

5)案例:硬链接用处不多,,可以用来对重要文件做快照防止误删,而对目录建立软链接在工作中很常用。例如:安装软件会用nginx-1.10作为目录,安装完后设置软链接为nginx,既保持了版本号识别,又方便使用,以及方便后续软件升级。

通配符:

模糊匹配:

*:匹配所有

?:匹配单个字符,有且只有一个字符

[abcd]:匹配一个字符

[a-d]:匹配连续的任意单个字符

[!a-d]或[^1-9]取反

路径位置:

~ 家目录

- 上一次所在目录

. 当前目录

.. 上一级目录

引号相关:

" 单引号 引用字符 所见即所得

""双引号 引用字符串 解析变量命令 推荐使用

`` 反引号 引用命令 解析命令 等价$() 推荐后者

其他字符:

; 表示命令分隔符

# 1、管理员提示符 2、注释符号

$ 1.普通用户提示符 2.调用变量使用

| 管道 前面的数据流交给后面处理

\ 转义字符 让字符还原本意

{} 1.生成序列 2.引用变量 让变量成为整体

! 1.取反 2.vim强制 3.调用最近符合字符开头的命令

&& 并且==and 前面正确后面才输出

|| 或者==or 前面错误后面才输出

你可能感兴趣的:(day13课后笔记)