linux云盘算底子篇章小白欢迎来看

打印 上一主题 下一主题

主题 888|帖子 888|积分 2664

linux云盘算底子
centos官网:www.centos.org、
linux发行版本: centos redhat ubuntu debian
一.linux系统安装

物理服务器
vmware workstation 创建一台虚拟机==物理服务器 在虚拟机上安装系统
云服务器:系统不必要单独安装,获取到云服务器后,系统是已经安装好的
1、创建虚拟机

cpu 处理器 men内存 disk磁盘 都是可以变革的 网络采用默认模式(桥接 网络地点转换 仅主机)
(2)给虚拟机分配镜像
(3)安装操纵系统
时区: Asia/Shanghai
安装方式:最小化安装
​ 图形化安装
磁盘分区:
​ 磁盘:20G
​ window:C盘 系统盘
​ linux分区: / 根分区 /boot swap
​ 根据实际需求可以举行磁盘的分区
​ 方案 /boot 500m (bioboot 500m)
网络主机名:
​ 开启网络
​ 主机名(不修改利用默认)自定义
root password :所设定的密码是root的密码
root用户是系统自带的具有最高权限 linux系统的超级管理用户
2、服务器

(1)物理服务器安装操纵系统的流程

1 rufus 制作 centos 启动盘
制作u盘 多台机器利用PXE
2 设置启动项 由硬盘启动设置为u盘启动 install centos 跟虚拟机安装千篇一律
​ 假如100台服务器,必要将100台物理服务器安装centos的操纵系统
​ 网络装机 ,利用PXE举行网络批量装机 PXE自动运维工具 举行批量化的操纵系统安装
(2)单用户模式

一分钟重启
​ 重启后内核按e
​ 找到UTF-8后加上 init=/bin/bash
​ ctrl+x
​ mount -o remount,rw /
​ touch /.autorelabel(假如出现selinux默认开启了,无法输入密码必要打这条下令) (都关闭后不要写)
​ crontab -e 删除筹划使命
​ exec /sbin/init 重启
破解root密码
​ 1.开机
​ 2.按e
​ 3.在UTF-8后面输入一下参数,打开一个终端进入救援模式/单用户模式:rd.break console==tty0
​ 4.以读写重新挂载暂时根目录 mount -o rw,remount /sysroot
​ 5.切换到暂时目录 chroot /sysroot
​ 6.修改密码,这里不必要知道之前的密码,重新设定即可 passwd
​ 7.关闭linux自带的安全机制 vi /etc/sysconfig/selinux SELINUX=disabled
​ 8.在根目录下创建隐藏文件autorelable touch /.autorelable
​ 9.exit 退出 reboot 重启
第二种
  1.            破解root密码
  2.         重启后在内核界面按e
  3.         UTF-8后面输入     init=/bin/bash
  4.         ctrl+x                                                                #重启
  5.         mount  -o remount,rw  /
  6.         touch /.autorelabel                                        #仅在selinux未关闭时使用
  7.         passwd  root
  8.         exec /sbin/init
复制代码
(3)Linux启动级别

0 停机 init 0 == shutdown now
1 单用户模式,用于系统维护
​ 2 多用户模式,但不启动NFS
​ 3 完整的多用户模式,带有显示登录 init 3(图形切换终端界面)
​ 4 预留,未利用
​ 5 图形化界面 init 5
​ 6 重新启动 init 6
(4)物理设备


IDC数据中央: 服务器 网络设备(路由器+交换机+防火墙)网线 机柜 空调
服务器分类: cpu、mem(内存)、主板、硬盘、网卡接口 vga接口、HDMI接口、use接口、管理接口
​ 机架式服务器
​ 塔式服务器
​ 刀片式服务器
(5)云产品

云服务器、云存储、云安全
云分类:公有云:华为云 阿里云 腾讯云
​ 私有云
​ 混淆云
​ 容器云
3、参数的利用

(1)ls参数利用

​ ls -l :显示文件的具体信息 文件类型/权限、硬链接个数、全部者、所属 组、巨细、修改时间、名字 或者 ll
ls -lh :以单位显示
ls -i :显示文件的inode号
ls -a :显示隐藏文件
4、date时间

​ date:查看时间和日期、修改时间和日期
​ 获取当前日期:date +%F F:日期
​ 获取当前时间:date +%H:%M:%S H:时 M:分 S:秒
​ 获取周几: date +%w w:周
​ 获取日期+时间 date +%F-%T
​ touch date +%F 创建当前时间的文件
​ date -s 3:00 //指定时间
5、Linux目录结构

​ which:获取下令对应的二进制文件存放位置
​ bin:下令文件 二进制文件 步调文件(平常用户)
​ sbin:下令文件 二进制文件 步调文件(管理员用户)
​ root:默认存放root用户的家目录 ~/当前用户家目录
​ home:默认存放平常用户的家目录
​ var:默认存放有变革的文件、好比日记
​ mnt:默认挂载
​ dev:默认存放设备文件
​ proc:虚拟文件
​ etc:默认存放配置文件的目录
​ tmp:暂时文件
6、linux文件管理

(1)路径

​ 绝对路径:以根开始的路径我们称之为绝对路径
​ 相对路径:从当前目录开始的路径称之为相对路径
(2)Linux文件类型

— 平常文件 (文本文件,二进制文件,压缩文件,电影,图片)
d 目录文件 (蓝色)
b 设备文件(块设备)存储设备硬盘,U盘/dev/sda,/dev/sda1
c 设备文件(字符设备)打印机,终端,/dev/tty1,/dev/zero
s 套接字文件
p 管道文件
l 链接文件(深蓝色)
(3)vi编辑器

编辑模式:利用i键,进入编辑模式可以修改
下令模式:默认进入下令模式,该模式可以看到文件内容,不能编辑
可视模式:第一列解释 ctrl + v I # Esc两下
尾行下令模式::wq!
G:光标移动到最后一行
gg:光标到行首
dd:删除光标所在行
dG:删除光标的下面的行
u:撤销
yy:复制
p:粘贴
D:删除光标后的内容
vi编辑器查找更换
语法格式:行s/更换的内容/更换成谁/
查找 在下令模式下输入“/”进入行尾下令模式 要查找的内容 /root n:从上往下查看 N:从下往上查看
​ 更换:%s/root/ROOT/ 从首行到最后一行更换,只能更换每一行第一个匹配到的
​ %s/root/ROOT/g 从首行到最后一行,只要匹配到全部更换
:5,10s/.*/#&/ 5行到10行每一行开头加一个#
:4,9s/^#// 4行到9行每行开头的#删除
暂时查看和取消行号
​ : set nu
​ :set nonu
​ :set list 查看空格
​ :set ic 不区分巨细写
永久设定行号
​ /etc/vimrc里面加 set nu
总结利用:(vim编辑文件的过程中不用鼠标,利用键盘,键盘上的全部键都是vim、vi快捷键)当利用vim/vi打开一个文件时。默认进入下令模式,该模式可以看到文件中的内容,不能编辑;利用快捷键i进入到编辑/插入模式,就连可以对文件举行编辑和修改,利用上下左右键来查看文件的内容,文件编辑或修改完成后必要利用Esc退出编辑模式,利用英文冒号进到尾行下令模式然后输入wq保存退出
(4)查看下令

cat 参数-n(显示行号)文件名
head 指定行数 从前往后 默认看前10行
​ tail 指定行数 从后往前 默认看后10行
​ tail -f 实时的查看
​ more less 翻页查看
​ 非正常关闭,再次编辑文件以.swp结尾的隐藏文件
​ 办理方案:Q退出 然后删除.swp结尾的
(5)help手册和man手册

​ man手册分类


  • 一样平常下令 8类可以获取下令的利用方法
  • 系统调用库 可以获取配置文件的利用方法或相关信息
  • c标准库
  • 设备文件
  • 配置文件
  • 游戏相关
  • 杂项 //所谓杂项,其大部分都是没办法很好分给其他8类资助
  • 系统管理相关下令
    help手册
    对于每一个下令来讲:语法格式
    [ ] 表现可选项,则必要则用,不必要不用
    { } 表现必选项,即里面的选项为必用
    | 或者的意思 好比a|b的意思就是只能选其中一个
7、用户和组

​ 特性:多用户多使命 多个用户在同一个系统中同一时间实行的不同的使命,他们相互不影响
​ 权限管理机制:每个用户拥有本身的权限
​ 默认的自带的超级管理用户:root
​ 利用平常用户对系统举行管理
​ 用户分类:centos
​ 超级管理员用户 root 标识 UID 0
​ 系统用户 标识 UID 1-999 包含14和999 0<UID<999
​ 平常用户 标识 UID UID>=1000
利用下令 ,32 位数字随秘密码天生。
< /dev/urandom tr -dc a-z|head -c ${1:-32} ; echo
天生10个大写字母
< /dev/urandom tr -dc A-Z|head -c ${1:-10};echo
天生10个数字
< /dev/urandom tr -dc 0-9|head -c ${1:-10};echo
天生10个数字和大写字母的组合字符串
< /dev/urandom tr -dc 0-9-A-Z|head -c ${1:-10};echo
(1) 用户

增长用户

​ useradd 用户名字 创建用户
​ passwd 用户名字 给用户设置密码
​ su - 用户名字 切换用户
​ useradd -u 1000 用户名字 指定用户uid
​ useradd -d 用户名字 /opt/xiaoshun 指定用户家目录
​ useradd -s /bin/sh 用户名字 指定登录shell
​ useradd -r 用户名称 创建系统用户
​ id -un 获取当前正在利用用户的用户名
​ 创建用户,并利用非交互的方式设置该用户的密码为123 echo ’ 123 ’ | passwd --stidin 用户名
修改用户

​ usermod -s /sbin/nologin 用户名 克制用户登录
​ usermod -u 用户名 1000 修改已创用户uid
​ usermod -l 新的用户名 旧的用户名 修改用户名
​ usermod -L 用户名 锁定密码
​ usermod -U 用户名 解开密码
​ usermod -G 用户2 用户1 用户1参加到用户2组里(用户1有两个组)给用户附加组
​ usermod -aG 组名 用户名 用户附加组 修改用户属组
​ userdel -r 用户 删除用户
添加用户发生变革的文件

/var/spool/mail 邮箱
​ /etc/group 存放组信息配置文件
组名:密码占位符:组标识GID:用户

​ /home 家目录
​ /etc/shadow 存放用户密码的(第二列密码是经过加密处理的)
​ /etc/passwd 系统中的全部用户的信息
​ 用户名:密码占位符:用户标识UID:组标识GID:描述:用户的家目录:登录shell

​ 判定用户是否可以登录,看登录shell
​ shell为/bin/bash、/bin/sh /、/usr/bin/bash以为看该用户可以登录到系统
​ shell为/sbin/nologin、/bin/nologin 都不能登录
(2)用户组

​ 一个用户至少包含一个组
​ groupadd 组名 创建组
​ groups 组名 查看用户组
​ groupmod -n 新组名 旧组名 修改组名字
​ groupmod -g 新GID 组名 修改GID
​ gpasswd -a 用户 组名 添加用户到组
​ gpasswd -M 用户1,用户2 组名 添加多用户到组
​ gpasswd -d 用户 组名 从组删除用户
​ groupdel 组名 删除组
用户提权

让平常用户具备管理员权限,实行管理员下令


  • 修改配置文件
    visudo
    100行
  • 实行下令组管理
    系统中有一个组,自带的组,轮子组 wheel
    只要把平常用户参加到这个组,这个用户具备管理员权限
​ gpasswd -a 用户 wheel
​ userwd gpasswd -a 用户 wheel
​ useradd 在创建时候就指定附加组 -G useradd 用户 -G wheel
提权成功后,实行下令时候子啊下令前面加sudo

8、linux系统管理权限

(1)根本权限UGO

U:User 用户 全部者
G:Group 组 所属组
O:Other 其他人
-rw-r–r-- 1 root root 60 Mar 28 17.44 test
test文件对应的全部者:root 1对应的所属组:root2
根本权限针对文件:
​ r: 读 4 读取文件的内容 cat vim/vi(读)
​ w:写 2 编辑该文件 vi vim(写入文件)
​ x: 实行 1 实行该文件(脚本) bash sh ./ /
​ 就算一个文件没有实行权限,我们可以利用bash或者sh的下令实行文件,但是假如一个文件没有实行权限,不能用./或者实行文件
根本权限针对目录:
​ r :读目录的内容 ls
​ w:创建和删除内容 touch mkdir rm
​ x:切换目录 cd
​ 关于删除目录下的内容,有没有权限删除,取决于目录的权限,跟目录里面我们要删除的文件或者目录没有关系
文件的默认权限是:644
目录的默认权限是:755
(2)权限的设置

修改根本权限:chmod
​ **数字方式:**chmod 564 test //这个文件权限:全部者读和实行,所属组读和写,其他人读
字母方式: chmod u+x test //增长,给xingdian文件全部者增长x权限
​ chmod u=rwx passwd //赋值,给passwd文件全部者赋值权限为rwx
扩展
​ chmod 777 /opt/dir -R
将/opt/dir目录下的全部内容设置权限为777,包括dir1目录下的全部文件,也包括了dir目录
​ chmod 644 /opt/dir/* -R
将/opt/dir/目录下全部内容设置权限为644,包括dir1目录下的全部文件,不包括dir目录
修改全部者所属组:chown
​ chown user1000,group2000 test
修改test文件全部者为user1000,所属组为group2000
​ chown user1001 test
修改test文件的全部者为user1001
​ chown .group2001 test
修改test文件的所属组为group2001(chgrp 该下令只能修改所属组)
​ chown user1000.group2000 /opt/dir -R
将/opt/dir目录下全部内容的全部者设置为user1000,所属组为group2000,包括dir1目录下的全部文件,也包括了dir目录
​ chown user1001.group2001 opt/dir* -R
将/opt/dir目录下全部内容的全部者设置为user1001,所属组为group2001,包括dir1目录下的全部文件,不包括了dir目录
(3)高级权限

​ 1.suid权限:给下令文件设置权限,当给下令文件设置了suid权限后,无论那个用户实行该下令,都会变成这个下令文件全部者的用户去实行 符合 s 对象 u 文件
chmod u+s 下令文件
​ 2.sgid权限:组继承权限 对象 g 符号s 针对目录
​ 目录的所属组假设是hr,假如设定了sgid权限,那么在该目录下创建的新文件都会继承目录的属组hr
chmod g+s 目录名
​ 3.sticky权限:防止别人误删除 符号 t 对象 o 针对目录
chmod o+t 目录名
(4)umask

​ umask 权限掩码 创建文件的时候,文件默认权限跟umask有关联 默认环境下,umask的值为022 所以创建的文件默认权限644,目录默认权限755
​ 修改umask:umask + 掩码 最大777 最小000
​ 文件默认权限=0666-0022=0644
​ 目录默认权限=0777-0022=0755
(5)文件属性(隐藏权限)

​ a:能看 能追加 不能删除
​ i:只能看,其他啥也干不了
​ chattr: + -
​ lsattr:查看
9、进程管理

(1)静态ps


​ ps aux
第一列:进程的拥有者
第二列:PID 进程ID 唯一标识一个进程
第三列:cpu利用的百分比
第四列:mem(内存)利用率
第七列:终端
第八列:进程的状态
​ Ss s进程的向导者,父进程
​ S< <优先级较高的进程
​ SN N优先级较低的进程
​ R+ +表现是前台的进程组
​ Sl 以线程的方式运行
最后一列:进程的名字
​ ps aux --sort -%cpu | less 按照cpu利用率从大到小
​ ps aux --sort -%mem |less 按照mem利用率从大到小
​ ps aux --sort -%cpu | head -4 | grep -v USER > /tmp/1.txt 按照cpu利用率从大到小查看前四行去掉USER重定向到/tmp/1.txt上
​ grep -v 取反
​ pidof sshd 获取服务pid
lsof 服务的端口,服务运行,进程存在,服务不运行,进程不存在,进程一定在
​ lsof -i:80
​ w who 都可以看到谁正在远程链接我,可以或许获取到对方ip地点、终端编号、对应的用户
​ w 还可以看服务器的运行时间、用户数量、平均负载
​ uptime 看cpu平均负载
(2)动态:top

​ 快捷键:P:将cpu利用率排序 M:将%mem利用率排序 R:排序反转
​ 操纵系统两种cpu状态 内核态 用户态
​ top分为上下两部分上面是机器整体负载环境,下面是单个进程的负载环境
​ load average代表cpu每1分钟,5分钟,15分钟的平均负载
​ us 用户空间占用cpu的百分比
​ sy 内核空间占用cpu的百分比
​ ni 调解过优先级的进程占用cpu的百分比
​ id cpu空闲百分比
​ wa io等待占用cpu百分比
​ hi 硬中断占用cpu百分比
​ si 软中断占用cpu的百分比
free -m/h 看内存的利用率
total 总量 used利用量 free空闲量 buff/cache 缓存中的内存
(3)网络进程

​ netstat -auntpl
​ ss -auntpl
​ -a:全部
​ -u:查看upd进程
​ -p:pid
​ -n:显示数字
​ -l:监听
​ -t:查看tcp进程
ss -antpl # 显示全部的 TCP 毗连和监听端口,以及与之相关联的进程信息
netstat -antpl # 显示全部的 TCP 毗连和监听端口,以及与之相关联的进程信息
ss -tnupl # 显示全部的 UDP 毗连和监听端口,以及与之相关联的进程信息
数据传输:
​ tcp:传输控制协议
​ tcp状态
CLOSED(关闭状态)初始状态,表现TCP毗连未建立
LISTEN(监听状态)。服务器等待客户端毗连的状态
SYN SENT(同步已发送状态)。客户端发送毗连请求后等待服务器确认的状态。
SYN RECEIVED(同步已吸收状态)。服务器吸收到客户端毗连请求并发送确认后的状态。
ESTABLISHED(已建立状态)。表现TCP毗连已成功建立,两边可以举行数据传输。
FIN WAIT 1(等待对方FIN报文状态)。表现TCP毗连的一方发送了关闭毗连请求。
FIN WAIT 2(等待对方关闭毗连请求状态)。表现TCP毗连的一方等待对方发送关闭毗连请求。
TIME WAIT(等待状态)。表现TCP毗连关闭后的等待状态,用于确保数据的可靠传输。
CLOSE WAIT(等待关闭状态)。表现TCP毗连的一方吸收到了对方的FIN报文,但尚未发送ACK。1
LAST ACK(最后确认状态)。表现TCP毗连关闭前的最后确认状态,等待对方的FIN报文。3
CLOSING(关闭状态)。表现TCP毗连正在举行关闭过程
​ udp:用户数据报协议
(4)进程管理

kill
​ kill -1 重新加载进程或重新加载配置文件
​ kill -9 给进程发送一个强行终止的信号
​ kill -15 正常杀死
​ kill -18 激活进程 //挂起,在次激活时服务对应进程的PID会改变不能
​ kill -19 挂起进程
pkill
​ pkill -9 -t pts/2 //指定终端干掉
​ pkill -9 -u 用户 //干掉指定用户进程
10、文件描述符

(1)重定向

​ 0 标准输入
​ 1 标准正确输出
​ 2 标准错误输出
​                                         当前终端的                            P                            I                            D                            e                            c                            h                            o                                  当前终端的PID echo                     当前终端的PIDecho 获取当前终端的PID
.> ,> 追加
.> 覆盖
1> 标准正确输出重定向覆盖
1>> 标准正确输出重定向
2> 标准错误输出重定向覆盖
2>> 标准错误输出重定向追加
​ & === 1+2 混淆输出
cat >>/opt/xingdian.b <<eof
xingdian
diandian
hello
hi
eof
| 管道的作用 前一条下令实行后的结果交给后一条的实行
(2)sort

sort 排序 从小打到排序
​ -r 反转
-n 按照数值排序
-k 指定字段(按列分)
(3)uniq

​ uniq 去重复(只能对一个字段,必须要排序在去重复)
​ -c 统计
awk $NF 最后一列 $(NF-1) 倒数第二列
​ -F 指定分隔符
grep -v 取反
access.log 日记文件 nginx访问日记

  • 获取到全部的ip地点
    cat access.log | awk ‘{print $1}’
  • 获取到全部ip的个数(统计某一网站访问次数:统计某一网站pv量)
cat access.log | awk ‘(print $1)’ | wc -l

  • 获取全部的IP地点(去重)(统计某个网站访问的人有那些)
    cat access.log | awk ‘{print $1}’ | sort -n | uniq
  • 统计某一网站访问人数(uv)
cat access.log | awk ‘{print $1}’ | sort -n | uniq | wc -l

  • 每个ip地点的个数(每次ip访问的次数)
    cat access.log | awk ‘{print $1}’ | sort -n | uniq
  • 获取访问次数前三的人/ip地点
    cat access.log | awk ‘{print $1}’ | sort | uniq -c | sort -rn | head -3
11、磁盘管理

机械硬盘(HDD)
固态硬盘(SSD)
分布式存储 HDFS CEPH
云存储
对象存储 minio OSS
(1)磁盘分区

​ lsblk 查看磁盘分区
​ MBR fdisk 下令最多分4个主分区
​ GPT gidsk 下令可以分128个主分区
​ 磁盘大于2T不可以利用fdisk下令,必须要用gdisk下令,可以分128个主分区
fdisk
​ n:添加分区
​ p:主分区
​ e:扩展分区
​ p:查看分区
​ w:保存退出
​ q:退出不保存
gdisk
​ n:添加分区(1-128)
​ p: 查看分区
​ d:删除分区
​ w:保存退出
​ q:退出不保存
(2)格式化

​ 文件系统
​ linux : xfs ext4 ext3 nfs
​ windows: NTFS FAT32
​ 格式化:磁盘或者磁盘分区设定文件系统类型
​ 磁盘有空间,本身容量100G,现在还显示10G,但是无法存放数据,ext家族文件系统,inodes耗尽造成无法存储文件
​ mkfs.xfs -f 设备名称
​ mkfs.ext4 设备名称
mount 挂载
​ 暂时挂载:
​ mount 设备名称 挂载点(目录)
​ mount -o rw centos-7-x86 64-Minima1-2009.iso /opt/centos/ 把镜像挂载在opt/centos目录上 rw是读写权限
暂时挂载重启失效
​ 永久挂载:
​ vim /etc/fstab 添加相关参数实现永久挂载
​ 第一列:设备(设备名称。设备uuid标识)
​ 第二列:挂载点(本质就是目录)
​ 第三列:文件系统类型(xfs ext4 nfs)
​ 第四列: 属性 rw remount defaults
​ 第五列+第六列: 0 0 不备份 不查抄
/dev/sdc /opt/1 ext4 defaults 0 0
[root@test opt]# blkid /dev/sdb
/dev/sdb: UUID=“a78dc5f7-5092-4539-8d69-cdf5846de1ce” TYPE=“xfs”
查找uuid
UUID=“25d22b48-8e46-494b-a12c-ae80a4297808” /opt/1 xfs defaults 0 0
(3)物理卷 逻辑卷 卷组

物理卷
​ pvcreate /dev/磁盘名称(sdb) //创建物理卷
​ pvremove /dev/磁盘名称(sdb) //删除物理卷
​ pvs //查看物理卷
​ pvmove /dev/sdb /dev/sdd //数据迁移: sdb–>sdd
卷组
​ vgcreate 卷组名(vg1)/dev/磁盘名(sdb) //创建卷组
​ vgextend 卷组(vg1) /dev/磁盘名(sdb) //将物理卷参加到卷组
​ vgremove 卷组名(vg1) //删除卷组
​ vgreduce 卷组名(vg1) /dev/磁盘名(sdb) //将物理卷从卷组中移除
​ vgs //查看卷组
逻辑卷
​ lvcreate -L 磁盘容量巨细(2G) -n 逻辑卷名(lv1) 卷组名(vg1) //创建逻辑卷
​ lvremove /dev/卷组名(vg1)/逻辑卷名(lv1) //删除逻辑卷
​ lvextend -L 磁盘容量(+5G) -n /dev/卷组名(vg1)/逻辑卷名(lv1) //逻辑卷扩容
​ lvreduce -L 20G /dev/centos/root //自定义逻辑卷的容量
​ lvs 查看逻辑卷
​ 扩容/分区


  • pvcreate /dev/sdb //创建物理卷
  • vgextend centos /dev/sdb //将物理卷参加centos卷组
  • lvextend -L +5G /dev/centos/root //逻辑卷扩容5G
  • xfs_growfs 要扩容的lv的path(/dev/centos/root) //整合文件系统
    扩容完要整合文件系统
准备一个正在被利用LV而且文件系统ext4
  1.    -  lvcreate -L 2G -n lv2 vg1
  2.    -  mkfs.ext4 /dev/vg1/lv2
  3.    -  mkdir /opt/lv2
  4.    - vi /etc/fstab    /dev/vg1/lv2 /opt/lv2 ext4 defaults 0 0
  5.    - mount -a   验证 df -Th
  6.    - lvextend -L 5G /dev/vg1/lv2
  7.    - 判断文件系统为ext4 所以使用
  8.    - resize2fs /dev/vg1/lv2
复制代码
​ 逻辑卷格式化
​ 先取消挂载
​ 在删除逻辑卷
​ 删除卷组
​ 删除物理卷
​ 格式化

(4)swap分区

​ swap分区巨细设置规则
内存小于4G时,保举不少于2GB的swap空间
内存4GB~16GB,保举不少于4GB的swap空间
内存16GB~64GB,保举不少于8GB的swap空间
内存64GB~256GB,保举不少于16GB的swap空间

​ 制作swap分区:
​ 先用fdisk做一个分区
​ 格式化
​ mkswap /dev/sdb 格式化分区
​ swapon /dev/sdb 激活swap分区
​ swapoff /dev/sdb 关闭swap分区

​ swap分区 交换分区 防止内存溢出造成系统奔溃
​ 内存 == 物理设备 === 内存条
​ swap == 交换分区 == 磁盘空间 充当 内存空间
​ 物理内存8G
​ 磁盘空间100G 分区 / 95G
​ /boot 1G
​ /swap 4G
(5)磁盘阵列

raid 0
​ raid 0分为2种,分别为单盘0和通盘0
​ raid通盘0 最少必要2块盘 磁盘空间利用率为100% 没有冗余没有容错
​ raid0把连续的数据分散到多个磁盘上存取
​ raid单盘0 只必要一块磁盘 常用于新服务器安装操纵系统
raid 1
​ raid 1 只能2块磁盘做。
​ 镜像raid,通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据
​ 优点:提供数据冗余,支持容错,读速度快
​ 缺点:写速度慢,磁盘利用率不高
​ 磁盘利用率:50%
raid 5
​ raid5最少必要3块磁盘。它的校验数据分布在阵列中的全部磁盘上。
​ 优点:1.可以找回丢失的数据2.冗余磁盘,当某一块磁盘坏掉后,冗余磁盘会自动更换上去3.读写速度高4.磁盘利用率高
​ 缺点:1.磁盘越多安全性能越差
​ 利用率 n-1/n
​ raid 6
​ raid6: 两块存校验位。RAID6引入双重校验的概念
​ 最少必要四块磁盘,它可以保护阵列中同时出现两个磁盘失效时,阵列仍可以或许继续工作,不会发生数据丢失。
​ 优点:1.容错:允许两块磁盘同时坏掉。读快。
​ 缺点:1.写入速度差
​ 2.成本高
​ 3 磁盘利用率 n-2/n
​ 应用场景:对数据安全级别要求比力高的企业
​ raid1+raid5 全都是机械硬盘
​ raid1+raid5 机械盘+固态盘 混搭
​ raid1用机械装系统
​ raid5用固态存数据
​ raid1+ssd_raid5
​ raid 阵列选型: 根据服务特点,和数据相关做有冗余的阵列,数据要求极高的就做最高的安全性raid。
​ 根据业务特点,数据重要程度,去选择冗余度高和低的raid阵列
(6)文件链接

​ 软毗连
​ ln -s 源文件(/roo/zhangsan) 目的地(/opt)
​ 平常文件和目录都支持软毗连
​ 软毗连源文件跟链接文件inode号不同
​ 软毗连源文件删除后,链接文件不可用
​ 软毗连可以跨分区
​ 硬链接
​ ln 源文件 目的地
​ 文件可以创建硬链接,目录不可以
​ 硬链接inode不变
​ 硬链接源文件删除后,链接文件可以利用
​ 硬链接不可以跨分区
12、文件查找

(1)find

语法格式:
​ find 位置/路径 条件 值 动作
条件:
​ 正则: .* 恣意多个字符 [0-9] [0-9z-a] [A-Z] [0-9A-Z] []
​ -name //文件名字
​ -type //文件类型 平常文件 f 其他和文件类型一样
​ -size //文件巨细 +5M 大于5M 5M 在5M范围内
​ -user //查找全部者
​ -group //查找属组
​ -perm //权限 指定 644 755
​ -mtime //修改时间
​ atime //访问时间 ctime 改变时间 mtime 修改时间
多个条件:
​ -a and // 条件都要满足
​ -o or //条件满足其中一个
动作: 默认-print 显示详情信息 -ls
​ -delete 删除
​ -exec
​ *find /opt -name "3" -exec mv {} /mnt ;
​ -exec ; 格式
​ {} 承接查到的内容
​ -ok
​ find /opt/ -name “*3” -exec mv {} /mnt ;
​ mv 文件操纵下令
​ {}承接查到的内容
​ -ok ; 格式
​ |xargs
​ find /opt/ -name “*2” |xargs -i mv {} /mnt
(2)压缩 解压

windows: .rar .zip
linux:.zip .tar.gz .tar.bz2 .tar.xz
tar包
​ 之所以会得到不同格式的压缩包,因为调用的压缩方式不同
​ .tar.gz gzip z
​ .tar.bz2 bzip2 j
​ .tar.xz xz j
​ 打包压缩:tar cf 路径/压缩包的名字 压缩的文件
​ 解压缩:tar xf 压缩包名字
​ 指定位置解压: -C
​ tar tf 不解压直接查看内容
​ tar -r 下令会在tar文件的末尾添加新的文件或者目录,而不会修改已有的文件
​ 查看/etc目录下全部以.conf结尾的文件并举行压缩,压缩到/opt目录下定名为conf.tar.gz
​ find /etc -name “*.conf” |xargs -i tar rf /opt/conf-1.tar.gz{}
zip包
​ 解压缩:unzip 压缩包名字
​ 指定位置解压: unzip -d /opt/ nextcloud-22.0.0.zip
gunzip 解压.gz结尾的包 假如没有gunzip,利用yum -y install gzip

13、软件包管理

​ 二进制包 .rpm结尾 有依靠关系 网站 https://rpmfind.net(注意版本) 软件官网(mysql)
​ 源码包 .tar.gz tar.xz
​ ntfs-3g-2011.4.12-5.e15.x86 64.rpm
​ 软件名字 版本号 发行版本 平台架构 后缀
​ etc/yum.repos.d
​ Centos-Base.repo 底子仓库文件 BASE仓库
​ 扩展仓库文件 EPEL仓库
​ 仓库文件里提供的是包下载地点(国外)
​ 初始化的操纵:更换yum仓库或者更换yum源
​ 自带删除 rm -rf /etc/yum.repos.d/*
​ 阿里 腾讯 华为 网易 底子源
​ 阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 (aliyun.com)
​ 在系统中有一些软件BASE和EPEL仓库中没有,来自于软件官网
​ BASE和EPEL中mariadb,没有mysql
​ 数据库 mysql
​ mysql 仓库文件所对应的安装包,安装该包,就能得到mysql的放库文件
​ yum -y install https://dev.mysql.com/get/mysq180-community-release-el7-11.noarch.rpm

​ web服务器 nginx
​ vi /etc/yum.repos.d/nginx.repo
​ [nginx-stable]
​ name=nginx stable repo
​ baseurl=http://nginx.org/packages/centos/                                   r                         e                         l                         e                         a                         s                         e                         v                         e                         r                         /                              releasever/                  releasever/basearch/
​ gpgcheck=1
​ enabled=1
​ gpgkey=https://nginx.org/keys/nginx_signing.key
​ module_hotfixes=true
​ [nginx-mainline]
​ name=nginx mainline repo
​ baseurl=http://nginx.org/packages/mainline/centos/                                   r                         e                         l                         e                         a                         s                         e                         v                         e                         r                         /                              releasever/                  releasever/basearch/
​ gpgcheck=1
​ enabled=0
​ gpgkey=https://nginx.org/keys/nginx_signing.key
​ module_hotfixes=true
(1)yum

yum 软件包管理的下令
​ install [yum -y install sl]
​ remove [yum -y remove sl]
​ reinstall [yum -y reinstal sl]
​ yum provides 包名 查找包名
​ yum info 服务名 查找包的具体信息
​ yum -y update 服务名 更新服务
​ yum list 列出全部包
​ yum repolist 列出全部的仓库(可用仓库)
​ 组包
​ grouplist
​ groupinstall
​ 清空yum缓存;在重新加载yum缓存[加速软件的安装速度]
​ yum clean all
​ yum make
cache //天生缓存 或者 yum make
cache fast 快速天生缓存
yum仓库
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com //指定仓库的名字
baseurl=http://mirrors.aliyun.com/centos/ //仓库地点
enabled=1 // 1开启 0关闭 仓库是否启用
gpgcheck=1 // 是否校验 1开启 0关闭
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 //
(2)rpm

rpm -ivh 软件包 // s1-5.02-1.e17.x86 64.rpm
卸载 rpm -e s1-5.02-1.e17.x86 64.rpm
查询 rpm -qa 获取已经安装的全部包
(3)源码包

​ 源码编译安装(nginx)
  1. 源码编译安装(nginx) https://nginx.org/ nginx的官网
复制代码
1.获取nginx的源码包
  1. wget https://nginx.org/download/nginx-1.24.0.tar.gz
  2. tar xf nginx-1.24.0.tar.gz
复制代码
2.编译安装准备所必要的环境
  1. yum -y install apr apr-util ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make
复制代码
3.配置
  1. ./configure  --prefix=指定位置(/opt/nginx)
复制代码
4.编译
  1. make
复制代码
5.安装
  1. make
  2. install
复制代码
获取项目源码包:wget http://10.9.12.206:30120/directlink/1/safeware/love.zip
安装解压工具:yum -y install unzip
解压源码包:unzip love.zip
拷贝源码到网站发布目录下:cp -r love/* /opt/nginx/html/
启动nginx : /opt/nginx/sbin/nginx 实行的是安装目录下的sbin目录下nginx的文件
关闭nginx: killall -9 nginx
访问之前关闭防火墙和selinux
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vim /etc/sysconfig/selinux.conf SELINUX=disabled
14、网络协议

(1)OSI、tcp/ip参考模子

早期的网络设备:中继器、多协议网关(路由器前身)
ISO 国际标准化组织 OSI:开放式系统互联(一套标准)TCP/IP:传控制协议/网际协议
网络的计划:带宽高、安全性强、可用性强、时效性、完整性、准确性
OSI七层模子
物理层: 约定接口类型、传输速度 数据—比特流(0.1)发送出去
​ 传输媒介: 双绞线(网线)rj45
数据链路层: MAC:物理地点,烧写在网卡设备上 唯一性 唯一标识一台设备
网路层:路由和选路
​ IP地点
传输层:约定命据采用何种方式
​ TCP:传输控制协议
​ UDP:用户数据报协议
会话层:建立删除维护会话
表现层:数据的格式,数据加密解密等
应用层:针对于应用约定的标准
​ HTTP 超文本传输协议 Telnet:远程协议 QICQ:qq协议
​ HTTPS 安全超文本传输协议 STMP\POS3
(2)tcp/IPv4协议 4层/5层

tcp/ipv4 4层模子
应用层(应用层+表现层+会话层)
传输层
网络层
网络接口层 (物理层+数据链路层)
tcp/ipv4 5层模子
应用层(应用层+表现层+会话层)
传输层
网络层
数据链路层
物理层
数据封装息争封装的过程
封装:发送数据的过程
解封装:接受数据的过程
数据封装将上层数据添加各层协议,首部形成数据包
数据解封装根据协议首部信息,逐层剥离各层协议首部,并提取出应用层数据.

wireshark 抓包工具
网关地点:只选择两个地点作为网关地点:.1 .254
(vmware nat模式的虚拟机) .2
(3)tcp和udp

tcp:传输控制协议 面向毗连协议 传输可靠 重传机制
1.建立链接 TCP链接
​ TCP报文中的指针,假如TCP报文被标注为ACK,该TCP的报文就是确认消息的报文
​ SYN:同步消息 建立毗连时发送SYN
​ ACK:确认消息

tcp三次握手
第一次握手:建立毗连时,客户端发送syn包到服务器,并进入syn_sent状态,等待服务器确认;
第二次握手:服务器收到SYN包,必须确认客户的SYN,同时也发送一个syn+ack包,此时服务器进入syn_rcvd状态;
第三次握手;客户端收到服务器的SYN+ACK 包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入established状态,完成三次握手,客户端与服务器开始传送数据

2.断开链接 TCP链接
​ 客户端向服务器发送断开毗连的请求
​ 服务器收到后回复ACK
​ 服务器向客户端发送的断开毗连的请求
​ 客户端收到后回复ack
udp:用户数据报协议 非面向毗连的协议 传输不可靠
​ udp传输速度更快
(4)wmare 网络模式

仅主机(不用)
桥接:桥接模式创建出来的虚拟机跟宿主机属于同一个网络,虚拟机相当以局域网中独立的设备
NAT:NAT模式创建出来的虚拟机有本身独立的网络,能跟宿主机相互通信,但是不能访问其他主机中NAT模式的虚拟机
假如虚拟机没有网络,排查思路
1.网卡 VMNET1 VMNET8
2.此电脑-管理-服务-vmware相关服务器是否处于运行状态
路由
1.直连路由
2.静态路由
3.动态路由
开启linux的路由转发功能
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p 生效
yum -y install net-tools 安装route

黄色标识:内网网关
arp 192.168.17.2 //看网关的mac地点
(5)ip地点

IP地点
​ 两部分: 网络部分(网络位) 主机部分(主机位)
​ 10.9.25.42 4部分数字 点隔开 8位二进制数 0 1
​ 10:00001010
​ 128 64 32 16 8 4 2 1
配置网络
​ 暂时
​ ip a a dev 网卡名称 IP地点/子网掩码
​ ip address add
​ ip a d dev 网络名称 IP地点/子网掩码
​ ip address delete
​ ifconfig 网卡名称:序号 IP地点/子网掩码

​ ipconfig 网卡名称 IP地点/子网掩码 [修改原有地点]
永久
​ 网卡配置文件(重要)利用配置文件etc/sysconfig/network-scripts/ifcfg-
静态ip地点-转换成动态- dhcp
BOOTPROTO=“dhcp”
TYPE=“Ethernet”
NAME=“ens33”
DEVICE=“ens33”
ONBOOT=“yes”
systemctl restart network
动态ip转换成静态ip
BOOTPROTO=“none”
TYPE=“Ethernet”
NAME=“ens33”
DEVICE=“ens33”
ONBOOT=“yes”
IPADDR=X.X.X.X
NETMASK=255.255.255.0
GATEWAY=x.x.x.2
DNS=x.x.x.2
systemctl restart network 重启网卡(网络服务)
192.168.72.x/24 网关地点和dns地点都是192.168.72.2 (虚拟机)
10.9.27.x/24 网关地点和dns都是 10.9.27.1 (企业)

(6)bond0动态链路聚合

1.添加网卡设备 1台服务器3网卡
2.cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak
cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens36.bak
cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens37.bak
3.网卡模板(全部网卡文件都要修改)
[root@xingdian network-scripts]# vim ifcfg-ens33
BOOTPROTO=none
DEVICE=ens33 #网卡名称注意别填错
ONBOOT=yes
USERCTL=no #平常用户是否可控制此设备
MASTER=bond0 # 绑定聚合文件ifcfg-bond0
SLAVE=yes
4.聚合模版文件
[root@xingdian network-scripts]# vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
USERCTL=no
BONDING_OPTS=“mode=1 miimon=100 fail_over_mac=1”
BOOTPROTO=none
IPADDR=10.0.0.128
NETMASK=255.255.255.0
GATEWAY=10.0.0.2
ZONE=public
DNS1=114.114.114.114
系统每100ms 监测一次链路毗连状态
默认fail_over_mac=0,当发生错误时,只改slave的mac不改bond;fail_over_mac=1时,只改bond不改slave
5.重启网络服务
[root@xingdian network-scripts]# systemctl restart network
6.查看绑定结果
[root@xingdian network-scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
link/ether 00:0c:29:a6:32:2d brd ff:ff:ff:ff:ff:ff
3: ens36: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
link/ether 00:0c:29:a6:32:2d brd ff:ff:ff:ff:ff:ff
4: ens37: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
link/ether 00:0c:29:a6:32:2d brd ff:ff:ff:ff:ff:ff
5: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
link/ether 00:0c:29:a6:32:2d brd ff:ff:ff:ff:ff:ff
inet 10.0.0.128/24 brd 10.0.0.255 scope global bond0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fea6:322d/64 scope link tentative dadfailed
valid_lft forever preferred_lft forever
7.查看bond信息
[root@xingdian network-scripts]# cat /proc/net/bonding/bond0
注意:
假如没有加载模块,必要加载模块
[root@xingdian ~]# lsmod |grep bonding
[root@xingdian ~]# modprobe bonding
[root@xingdian ~]# lsmod |grep bonding
bonding 152656 0
Mode 0 (balance-rr) 轮转(Round-robin)策略

:重新到尾顺序的在每一个slave接口上面发送数据包
Mode 1 (active-backup) 备份(主备)策略

:只有一个slave被激活,仅当运动的slave接口失败时才会激活其他slave
ifdown ens33 down掉bond0绑定的网卡 自动切换到别的一个网卡
开启新的服务器举行访问测试,切换后依然可以访问那说bond成功了
ifup 激活
15、服务管理

(1)服务管理

故障排查思路:
​ 假如给httpd服务增长功能,修改配置文件。写错了参数
​ 启动httpd systemctl restart httpd 报错 没有启动成功
​ systemctl status httpd -l 获取报错原因
(2)时间服务

时间服务器(NTP)
timedatectl set-timezone Asia/Shanghai 设置时区为上海
ntpdate ntp.aliyun.com 同步时间阿里云
一 、环境准备:
​ 1.修改主机名
​ hostnamectl set-hostname ntp-server
​ 2.关闭防火墙和selinux
​ systemctl stop firewalld
​ systemctl disable firewalld
​ setenforce 0
​ 二、配置时间服务器
# rpm -qa | grep ntp
ntp-4.2.4p8-3.el6.x86_64
​ yum -y install ntp
​ NTP Server配置示例:
# vim /etc/ntp.conf //配置文件全部删掉,只要下面三行
restrict default nomodify //不允许客户端登录,也不允许客户端修改
server 127.127.1.0 //利用当地的bios时间,本身跟本身同步
fudge 127.127.1.0 stratum 10 //定义级别,范围0-16,越小越精准
# systemctl restart ntpd
# systemctl enable ntpd
三、配置NTP客户端
yum -y install ntpdate
# ntpdate -b 172.16.110.1 //手动时间同步 -b加速初始化同步
(3)日记管理

​ 日记服务:rsyslog
​ /var/log://默认是系统用来存放日记的目录,默认环境下服务。系统的日记文件都在该目录下
​ /etc/rsyslog.conf://日记服务配置文件
​ /etc/rsyslog.d: //日记服务的子配置文件
​ messages //系统主日记文件
​ secure //认证、安全
​ cron://筹划使命的日记
​ yum.log:记录yum相关日记(安装+卸载)
grep Accepted /var/log/secure 过滤登录成功
grep Failed /var/log/secure 过滤登录失败
​ 日记级别 级别越低,信息越多
​ debug:最低的,一样平常不用
​ info:安装信息,告诫信息,错误信息
​ notice:相当与提示
​ warn/warning:告诫,错误
​ error/err:错误,严肃错误
​ alert:告警,表现已经出现标题
​ emerg:恐慌级别
扫描端口
yum -y install nmap 端口扫描 查看服务器开放的端口
nmap -O 192.168.21.163 #探测目的主机操纵系统类型
nmap -A 192.168.21.163 #探测目的主机操纵系统类型
(4)日记轮转

对象:日记文件
为什么:防止日记文件过大
避免无法打开过慢 避免浪费磁盘资源
定期清理 旧的日记数据/文件
这么做日记切割? 利用规则切割 日记切割
logrotate 依据 规则文件
/etc/logrotate.conf 规则配置文件 (决定每个日记文件怎样轮转)
子配置目录 /etc/logrotate.d/ ##存放特定应用或服务的单独配置日记文件
/var/log/wtmp{
yearly //到达一年就轮转一次,两者满足一个就轮转
weekly //轮转的周期,一周轮转
monthly //一月轮转一次
daily //一天轮转一次
create //轮转后创建新文件
dateext //利用日期作为后缀
minsize 1M //最小到达1M才轮转,即到了规定的时间未到达巨细不会轮转
maxsize 30k //到达30k就轮转
create 0664 root utmp //轮转后创建新文件,并设置权限属主和属组
rotate 1 //保留一份
missingok //丢失不提示
notifempty //空文件不轮转
}
logrotate.conf -f /etc/logrotate.d/qfssh.log 强行轮转一次
(5)筹划使命

筹划使命
at:一次性筹划使命
一次性筹划使命:
​ 安装对应的软件:yum -y install at
​ 启动 systemctl restart atd

​ 两部分
​ 时间:只能指定某一个时间点
​ 使命/下令/动作
​ 案例:
​ 在14:22分实行创建文件的下令
​ at 14:22 //时间
​ .>touch /opt/xingdian //使命、下令
​ .>ctrl +d 结束筹划使命创建
​ 1:00 5/1/2024 小时:分钟 月:日:年
​ at -l 查看筹划使命 at -d 使命序号
crontab:循环性筹划使命 crontab实行时间盘算 (https://tool.lu/crontab/)
​ 服务:crond systemctl status crond 默认开机自启
​ 分类:
​ 系统级筹划使命
​ 用户级筹划使命(超级管理员 平常用户)
​ 创建 */1 * * * * //每一分钟 crontab -e
​ 查看 //查看筹划使命crontab -l
​ 删除 //删除筹划使命crontab -r
​ // 指定用户删除crontab -r -u xingdian
​ /var/spool/cron 里面存放了循环筹划使命的文件 以用户定名
16、ftp服务

服务端:
1.yum -y install vsftpd
2.systemctl restart vsftpd systemctl enable vsftpd
3.欣赏器或者文件资源管理器访问测试
客户端:
1.yum -y install lftp
lftp 192.168.12.122
/etc/vsftpd/vsftpd.conf //vsftpd配置文件
/var/ftp/ //对外共享目录,要共享的文件放到该目录下
/var/log/xferlog 用户的上传和下载都会被该文件记录 vsftpd日记文件
mirror 下载目录 get 下载文件
(1)开启匿名用户上传模式

1.有一个目录,在对外的共享目录下,而且该目录必须还得创建文件/目录权限(默认的对外共享目录)
mkdir /va/ftp/date
chmod 777 /var/ftp/date
2.修改文件实现上传功能
anon_upload_enable=YES # 是否允许匿名用户上传文件
anon_mkdir_write_enable=YES # 是否允许匿名用户允许创建目录
3.验证上传功能
​ lftp 10.9.12.122
​ put +文件名(绝对路径)上传的文件当地有
​ mirror -R 目录名(绝对路径) 上传的目录当地有
注意:
1.对外共享目录自身不能利用777权限,否则会报错
2.上传文件前先要进入对应的目录下,否则无法上传
3.全部服务器都要关闭防火墙和SELinux
(2)自定义匿名用户共享目录

1.创建对外共享目录
​ mkdir /opt/gongxian
2.ftp指定该目录(修改配置文件)
​ anon_root=/opt/gongxiang //在某尾添加一行
3.重启服务
​ systemctl restart vsftpd
4验证
​ lftp
3.因必要利用/opt/nfs-share目录最为FTP对外共享目录,该目录下有一子目录为data,实现匿名用户在该目录下可以上传下载文件
(3)启用FTP用户登录


  • useradd zhangsan
    passwd 123
  • 修改配置文件开启平常用户登录的功能
​ local_enable=YES
3.验证 lftp 10.9.12.122 -u zhangsan
平常用户登录FTP,ftp的服务器端来说,对外共享的目录默认是平常用户的家目录
(4)全部的平常用户利用同一个对外共享目录

1.创建共享目录 mkdir /opt/qf2402
2修改配置文件指定共享目录 local_root=/opt/qf2402
3重启服务
4验证(在共享目录下创建一个文件,方便验证)
[root@ftp-client ~]# lftp 10.9.12.122 -u xingdian
Password:
lftp xingdian@10.9.12.122:~> ls
-rw-r–r-- 1 0 0 0 Apr 19 06:35 qf2402.txt
lftp xingdian@10.9.12.122:~> exit
[root@ftp-client ~]# lftp 10.9.12.122 -u cloud
Password:
lftp cloud@10.9.12.122:~> ls
-rw-r–r-- 1 0 0 0 Apr 19 06:35 qf2402.txt
lftp cloud@10.9.12.122:~>
(5)平常用户上传文件

1.在对外共享目录下创建一个目录,并设置 777权限
mdir /opt/qf2402/qf
chmod 777 /opt/qf2402/qf
2.修改配置文件,开启上传功能
​ anon_upload_enable=YES
​ anon_mkdir_write_enable=YES
3.重启服务
4.客户端就可以利用平常用户上传文件
(6)黑白名单

ftpusers user_list
userlist_deny=YES 用户不在 user_list 文件中 该用户可以访问FTP
userlist_deny=YES 用户在 user_list 文件中 该用户不可以访问FTP
userlist_deny=NO 用户在 user_list 文件中 该用户可以访问FTP
userlist_deny=NO 用户不在 user_list 文件中 该用户不可以访问FTP
userlist_deny=NO 用户在 user_list 文件中 例如:root用户,但是仍然不可以访问FTP ,root用户还在ftpusers中
(7) ftp+自制yum源

1.在FTP-Server安装FTP服务
  1. 安装并运行(开机自启--不强制)
复制代码
2.采用匿名用户访问,对外共享目录/var/ftp ; 自定义的对外共享目录 在共享目录下创建一个目录,用来存放RPM包
  1. 目录创建:略
  2. 准备包:略
  3.   [包从镜像获取]
  4. 拷贝包:略
  5.   拷贝到对外共享目录下自己创建的目录
复制代码
3.将该目录变成软件包目录
  1. createrepo命令将存放rpm的包变成软件包目录
复制代码
4.客户端调用 ftp://10.9.12.122 yum调用
/etc/yum.repos.d/centos.repo
[xingdiancloud]
name=xingdiancloud package
baseurl=ftp://10.9.12.122/centos7
enabled=1
17、NFS服务

NAS 网络附加存储 NFS
NFS 属于NAS存储的软件又是一个网络文件系统 linux和linux之间共享
NFS 对外共享的是文件系统 客户端必要 挂载才能利用
Samba SMB协议 C/S架构/模子 资源共享和打印机服务 Linux和Linux Linux和Windows
2台服务器
一台:NFS-server
二台 :NFS-client
服务器配置:
​ 1.安装
​ yum -y install nfs-utils
​ 2.启动并开机启动
​ systemctl restart nfs
​ systemctl enable nfs
​ 3.创建对外共享目录
​ mkdir /opt/share-1
​ 4.配置对外共享 /etc/exports

只读
共享源 共享给谁 共享属性 /etc/exports
​ /opt/share-1 *(ro,sync,no_root_squash)
  1.         [root@nfs-server ~]# exportfs -rv
  2.                 exporting *:/opt/share-1
  3.                 [root@nfs-server ~]# systemctl restart nfs
复制代码
共享给谁
  1.         /opt/share-2 10.9.12.0/24(ro,sync,no_root_squash)  共享给一个网段
  2.                 /opt/share-2 10.9.0.0/24(ro,sync,no_root_squash)   共享给某一个人
  3.                 /opt/share-1 *(ro,sync,no_root_squash)  共享给所有人
复制代码
读写
​ /opt/share-4 *(rw,sync,no_root_squash)
客户端配置
1.保证系统支持网络文件系统NFS
​ yum -y install nfs-utils
2.利用NFS-server端对外共享的资源(挂载)挂载点
​ mkdir /opt/nfs-1
暂时挂载
​ mount
永久挂载
​ /etc/fstab
​ 10.9.12.122:/opt/share-1 /opt/nfs-1 nfs defaults 0 0
​ mount -a
验证:服务端创建文件,客户端验证是否同步 属性(只读 读写)
18、web服务

集群架构
​ web服务器:nginx apache (H5)
​ 中间层服务器:提供JAVA PHP Python 运行环境
​ 数据库服务器:mysql 存储项目数据
web服务器: 接受来自用户的请求,根据用户的请求做出响应
客户端 服务器 http:超文本传输协议 https:加密的超文本传输协议 密文
https SSl协议 证书 对服务器身份验证 客户端和服务器中间数据加密传输
URI:统一资源标识符
URL:统一定位符号 定位到文件地点
URI包含URL
H5 前端开发语言 项目 运行环境 apache nginx web服务器软件
JAVA 后端开发语言 项目 运行环境 web中间件
打包构建:两种环境
LNMP架构
:针对于java开发的项目

​ war包 shopping.war tomcat 软件运行 web中间件
​ war包架构LAMJT linux+apache/nginx+mariadb/mysql+jdk+tomcat
​ jar包 shopping.jar jdk java环境
​ jar包架构LAMJ linux+apache/nignx+mariadb/mysql+jdk
php: php
python :wsgi和uwsgi
中间件:web中间件 java中间件 python中间件 php 中间件
消息队列中间件 RabbitMQ
(1)http服务

1.部署
​ yum -y install httpd
2.利用
​ systemctl restart httpd
​ systemctl enable httpd
3.目录和文件
​ /var/www/html apache自带默认网站发布目录 项目源码 自定义网站发布目录
  1.         /etc/httpd/conf/httpd.conf  apache主配置文件
  2.         /etc/httpd/conf.d/      apache子配置文件目录
  3.         /var/log/httpd/                        apache日志
  4.         /var/log/httpd/access_log         访问日志   /etc/httpd/logs/
  5.         /var/log/httpd/error_log        错误日志
  6.         存放在网站发布目录下,index.html    默认主页
  7.         默认端口号 80
复制代码
4.怎样apache是否已经安装
​ rpm -qa | grep httpd
5.怎样apache是否出运行状态
  1.        systemctl status httpd
  2.         ps aux | grep httpd 存在进程说明处于运行状态
  3.         lsof -i:80 判断80端口是否存在
复制代码
6.apache是web服务器软件,全部的前端源码,都可以在apache上运行
7.网站服务器 对外共享文件资源
​ mkdir /var/www/html/download
  1.          touch /var/www/html/download/file{1..10}
复制代码
8.下令测试服务器是否正常运行
  1.     curl  IP地址/域名
  2.         elinks  IP地址/域名  文本的形式
  3.         127.0.0.1  域名 localhost
复制代码
9.apache主配置文件
  1.                 Listen 80 监听端口
  2.                 ServerRoot  /etc/httpd/
  3.                 DocumentRoot "/var/www/html"  网站发布目录
  4.                 <Directory / >  设置目录的属性 Require all denied 拒绝 </Directort>
  5.                 Require all granted 允许
  6.                 ErrorLog "/etc/httpd/logs/error_log" 指定错误日志
  7.                 <IfModule log_config_module> 定义日志格式  </IfModule>
  8.                 CustomLog "logs/access_log" combined  定义访问日志  存放位置及文件名 格式的名字
  9.                 IncludeOptional conf.d/*.conf  加载子配置文件
复制代码
实验
apache虚拟主机
  1.         可以实现在一台服务器部署多个项目
  2. 基于端口
  3. 基于域名
  4. 基于IP地址
  5.         三种方式使用那种都可以,但是选择其中一种后,剩余的保持一直
复制代码
1.将项目上传到服务器
2.配置虚拟主机
[root@VM-0-5-centos conf.d]# cat a.conf b.conf c.conf

<VirtualHost *:81>
  1.     ServerName localhost
  2.     DocumentRoot /web-1
  3.      </VirtualHost>
  4. <Directory /web-1>
  5.     AllowOverride all
  6.     Require all granted
  7.      </Directory>
复制代码
<VirtualHost *:82>
  1.     ServerName localhost
  2.     DocumentRoot /web-2
  3.     </VirtualHost>
  4.     <Directory /web-2>
  5.     AllowOverride all
  6.     Require all granted
  7.     </Directory>
复制代码
<VirtualHost *:83>
  1.     ServerName localhost
  2.     DocumentRoot /web-3
  3.      </VirtualHost>
  4.     <Directory /web-3>
  5.       AllowOverride all
  6.     Require all granted
  7.     </Directory>
复制代码
3.创建项目对应的网站发布目录
[root@VM-0-5-centos conf.d]# mkdir /web-1
[root@VM-0-5-centos conf.d]# mkdir /web-2
[root@VM-0-5-centos conf.d]# mkdir /web-3
4.将源码解压,拷贝到对应的网站发布目录下
复制代码
6.添加对应端口的监听
  1. 81 82 82
  2. Listen 81
  3. Listen 82
  4. Listen 83
复制代码
5.重启服务
复制代码
6.访问
  1. IP+端口
复制代码
(2)http日记

apache日记
定义日记格式
  1. https://httpd.apache.org/docs/2.4/mod/mod_log_config.html
  2. LogFormat 定义日志格式
复制代码
指定配置日记
日记内容
给你一个日记文件,利用awk sort uniq grep head cat wc 等下令举行分析 apache/nginx的访问日记文件
1.统计该网站有多少次访问记录
​ cat access.log | wc -l
2.统计一个每个IP访问了多少次
​ cat access.log | awk ‘{print $1}’| sort | uniq -c | sort -rn
3.统计每个请求方式的数量 GET有多少次 POST有多少次
cat access.log | awk -F ‘"’ ‘{print $2}’ | awk ‘{print $1}’ | sort | uniq -c
cat access.log | awk -F’“’ ‘{print $2}’ | grep POST | wc -l
cat access.log | awk -F’”’ ‘{print $2}’ | grep GET | wc -l
4.统计每一请求地点的访问次数
[root@proxy nginx]# cat access.log |awk -F’“’ ‘{print $2}’ |awk ‘{print $2}’ |sort |uniq -c
[root@proxy nginx]# cat access.log |awk -F’”’ ‘{print $2}’ |awk ‘{print $2}’ |sort |uniq -c |sort -rn -k 1 | head
5.统计每个状态码的数量 200有多少个 404有多少个
cat access.log | awk -F ‘"’ ‘{print $3}’ | awk ‘{print $1}’ | sort | uniq -c
cat access.log | awk -F’"’ ‘{print $3}’ | awk ‘{print $1}’ | grep 200
cat access.log | awk -F’"’ ‘{print $3}’ | awk ‘{print $1}’ | grep 404
(3)LAMP架构

LAMP架构 ==linux+apache+mysql/mariadb+php
L:linux
A:apache
M:mysql maridb
P:php
1博客 wordpress 项目 免费获取项目的源码 php语言开发
1.安装LAMP架构
  1. [root@wordpress ~]# yum -y install httpd mariadb mariadb-server php php-fpm php-mysql php-gd gd
复制代码
2.启动LAMP架构
  1. systemctl start httpd mariadb php-fpm
  2. systemctl enable httpd mariadb php-fpm (可选)
复制代码
3.对服务举行配置apache、mariadb、php均采用默认的配置
  1. apache:不做修改 网站发布目录采用默认/var/www/html  端口默认:80
  2. mariadb:用默认的,但是需要准备一些东西  【库】  默认管理员用户(root)没有密码,为了安全设定一个密码
  3. 设定密码:[root@wordpress ~]# mysqladmin  -u root password '123'
  4. 进入数据库:[root@wordpress ~]# mysql -u root -p123
  5. 创建库:MariaDB [(none)]> create database wordpress;
  6. php:不做修改 采用默认配置
复制代码
4.上传项目源码,并将该源码放到网站发布目录下
  1. [root@wordpress ~]# wget http://10.9.12.206:30120/directlink/1/safeware/wordpress-4.9.1-zh_CN.tar.gz
  2. [root@wordpress ~]# cp -r wordpress/* /var/www/html/
复制代码
5.设置源码权限
  1. [root@wordpress ~]# chmod  777 /var/www/html/* -R
复制代码
6.访问测试
  1. LNMP架构
复制代码
扩展:针对java开发的项目
  1. war包   L A/N M J T  linux+apache/nginx+mariadb/mysql+jdk+tomcat
  2. jar包   L A/N M J    linux+apache/nginx+mariadb/mysql+jdk
复制代码
(4)DNS

以下是 DNS 请求的全过程,包括根域名服务器的参与:

  • 输入网址
    用户在欣赏器中输入网址(例如www.example.com)并按下回车。
  • 当地 DNS 缓存查询
    盘算机首先查抄当地 DNS 缓存,看看是否已经保存了该域名对应的 IP 地点。
  • 向当地 DNS 服务器发起请求
    假如当地 DNS 缓存中没有找到对应的 IP 地点,盘算机会向当地 DNS 服务器发起请求。
  • 递归查询开始
    当地 DNS 服务器开始递归查询过程,向根域名服务器发起查询请求。
  • 向根域名服务器查询
    根域名服务器知道整个互联网的域名分布环境,但它不知道具体域名对应的 IP 地点。根域名服务器会将查询转发给顶级域名服务器。
  • 向顶级域名服务器查询
    顶级域名服务器知道每个顶级域名(如.com、.net、.org等)的权势巨子 DNS 服务器地点。当地 DNS 服务器向顶级域名服务器查询该域名的权势巨子 DNS 服务器的 IP 地点。
  • 向权势巨子 DNS 服务器查询
    顶级域名服务器返回权势巨子 DNS 服务器的 IP 地点后,当地 DNS 服务器向权势巨子 DNS 服务器发起查询请求,请求该域名对应的 IP 地点。
  • 返回 IP 地点
    权势巨子 DNS 服务器查询到该域名对应的 IP 地点后,将其返回给当地 DNS 服务器。
  • 返回给客户端
    当地 DNS 服务器收到 IP 地点后,将其缓存,并将其返回给客户端(例如您的盘算机)。客户端收到 IP 地点后,就可以利用它来建立与目的网站的毗连,开始欣赏网页或举行其他网络运动。
(5)密钥远程管理服务

ssh服务
​ /etc/ssh/sshd_config 服务端配置文件
​ /etc/ssh/ssh_config 客户端配置文件
​ /root/.ssh/ 密钥存放位置
ssh 远程登录下令
​ ssh 192.168.17.168

ssh-keygen 天生密钥
​ 密钥: id_rsa(私钥) id_rsa.pub(公钥) authorized_keys (存放对方的公钥)
scp
​ scp id_rsa 192.168.17.132:/root 拷贝私钥到B机器
实验:免密登录
1.天生密钥 ssh-keygen
2.你要去免密谁,给你发送你的密钥(公钥)

  • ssh-copy-id 10.9.12.121
    4.ssh 10.9.12.121
实验:虚拟机利用密钥毗连(远程工具)
1.天生密钥
2.将公钥写入到authorized_keys的文件中(.ssh)
cat id_rsa.pub >> authorized_keys
3客户端利用私钥登录(获取到对应的私钥)
指定私钥的方式毗连服务
scp 远程拷贝 A B
  1. 1.把文件拷贝给别人
  2.         scp -r  源文件    谁IP:路径   拷贝到对方的那个目录下
  3. 2.从别人哪里获取文件
  4.         scp -r 对方IP:文件路径   放那个目录下
复制代码
注意:
1.远程拷贝目录的时候,加-r参数
2.假如服务器之间做了免密,远程拷贝也是免密的
19、内核优化

1.进程允许打开文件数量: ulimint -n
参数
​ net.ipv4.tcp_syncookies=1
表现开启SYNCookies,当出现等待队列溢出时,启用cookies来处理,可防范少量syn攻击,默认为0表现关闭 //明确缓存
​ net.ipv4.tcp_reuse=1
表现开启重用,允许TIME-WARFsocjets重新用于新的tcp链接,默认为0,表现关闭 //明确端口被用过了,而且已经被释放还能给其他人利用
​ net.ipv4.tcp_recycle=1
表现开启TCP毗连中TIME-WARTsockets的快速接纳,默认0表现关闭
云服务器 Linux 实例常用内核参数介绍-运维指南-文档中央-腾讯云 (tencent.com) 腾讯云配置优化内核
内核优化-网络类(tcp协议) 内存类 进程类 io类

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

石小疯

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表