2024-10-09 15:03:19 +08:00
|
|
|
|
linux云计算基础
|
|
|
|
|
|
|
|
|
|
centos官网:www.centos.org、
|
|
|
|
|
|
|
|
|
|
linux发行版本: centos redhat ubuntu debian
|
|
|
|
|
|
|
|
|
|
**作者:xiaoshun**
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 一.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 重启
|
|
|
|
|
|
|
|
|
|
第二种
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
破解root密码
|
|
|
|
|
重启后在内核界面按e
|
|
|
|
|
UTF-8后面输入 init=/bin/bash
|
|
|
|
|
ctrl+x #重启
|
|
|
|
|
mount -o remount,rw /
|
|
|
|
|
touch /.autorelabel #仅在selinux未关闭时使用
|
|
|
|
|
passwd root
|
|
|
|
|
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:用户**
|
|
|
|
|
|
|
|
|
|
[![image-20240402154749209](file:///C:/%5CUsers%5C33163%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20240402154749209.png)](file:///C:/\Users\33163\AppData\Roaming\Typora\typora-user-images\image-20240402154749209.png)
|
|
|
|
|
|
|
|
|
|
/home 家目录
|
|
|
|
|
|
|
|
|
|
/etc/shadow 存放用户密码的(第二列密码是经过加密处理的)
|
|
|
|
|
|
|
|
|
|
/etc/passwd 系统中的所有用户的信息
|
|
|
|
|
|
|
|
|
|
用户名:密码占位符:用户标识UID:组标识GID:描述:用户的家目录:登录shell
|
|
|
|
|
|
|
|
|
|
[![image-20240402154848540](file:///C:/%5CUsers%5C33163%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20240402154848540.png)](file:///C:/\Users\33163\AppData\Roaming\Typora\typora-user-images\image-20240402154848540.png)
|
|
|
|
|
|
|
|
|
|
判断用户是否可以登录,看登录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 xingdian
|
|
|
|
|
|
|
|
|
|
xingdian文件对应的所有者: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 xingdian //这个文件权限:所有者读和执行,所属组读和写,其他人读
|
|
|
|
|
|
|
|
|
|
**字母方式:** chmod u+x xingdian //增加,给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 xingdian
|
|
|
|
|
|
|
|
|
|
**修改xingdian文件所有者为user1000,所属组为group2000**
|
|
|
|
|
|
|
|
|
|
chown user1001 xingdian
|
|
|
|
|
|
|
|
|
|
**修改xingdian文件的所有者为user1001**
|
|
|
|
|
|
|
|
|
|
chown .group2001 xingdian
|
|
|
|
|
|
|
|
|
|
**修改xingdian文件的所属组为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
|
|
|
|
|
|
|
|
|
|
[![image-20240402152833847](file:///C:/%5CUsers%5C33163%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20240402152833847.png)](file:///C:/\Users\33163\AppData\Roaming\Typora\typora-user-images\image-20240402152833847.png)
|
|
|
|
|
|
|
|
|
|
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 标准错误输出
|
|
|
|
|
|
|
|
|
|
当前终端的PID echo 获取当前终端的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 统计
|
|
|
|
|
|
|
|
|
|
cat 1.txt | awk -F':' 'NR==10{print $5}' ##NR指定目标所在行
|
|
|
|
|
|
|
|
|
|
awk $NF 最后一列 $(NF-1) 倒数第二列
|
|
|
|
|
|
|
|
|
|
-F 指定分隔符
|
|
|
|
|
|
|
|
|
|
grep -v 取反
|
|
|
|
|
|
|
|
|
|
access.log 日志文件 nginx访问日志
|
|
|
|
|
|
|
|
|
|
1. 获取到所有的ip地址
|
|
|
|
|
|
|
|
|
|
cat access.log | awk '{print $1}'
|
|
|
|
|
|
|
|
|
|
2. 获取到所有ip的个数(统计某一网站访问次数:统计某一网站pv量)
|
|
|
|
|
|
|
|
|
|
cat access.log | awk '(print $1)' | wc -l
|
|
|
|
|
|
|
|
|
|
1. 获取所有的IP地址(去重)(统计某个网站访问的人有那些)
|
|
|
|
|
|
|
|
|
|
cat access.log | awk '{print $1}' | sort -n | uniq
|
|
|
|
|
|
|
|
|
|
2. 统计某一网站访问人数(uv)
|
|
|
|
|
|
|
|
|
|
cat access.log | awk '{print $1}' | sort -n | uniq | wc -l
|
|
|
|
|
|
|
|
|
|
1. 每个ip地址的个数(每次ip访问的次数)
|
|
|
|
|
|
|
|
|
|
cat access.log | awk '{print $1}' | sort -n | uniq
|
|
|
|
|
|
|
|
|
|
2. 获取访问次数前三的人/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@fuxiaoshunc7 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
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
- lvcreate -L 2G -n lv2 vg1
|
|
|
|
|
- mkfs.ext4 /dev/vg1/lv2
|
|
|
|
|
- mkdir /opt/lv2
|
|
|
|
|
- vi /etc/fstab /dev/vg1/lv2 /opt/lv2 ext4 defaults 0 0
|
|
|
|
|
- mount -a 验证 df -Th
|
|
|
|
|
- lvextend -L 5G /dev/vg1/lv2
|
|
|
|
|
- 判断文件系统为ext4 所以使用
|
|
|
|
|
- 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(注意版本)](https://rpmfind.xn--net()-xc5jm76arql48l/) 软件官网(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)](https://developer.aliyun.com/mirror/)
|
|
|
|
|
|
|
|
|
|
在系统中有一些软件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/$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/$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 makecache //生成缓存 或者 yum makecache 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)
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
源码编译安装(nginx) https://nginx.org/ nginx的官网
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
1.获取nginx的源码包
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
wget https://nginx.org/download/nginx-1.24.0.tar.gz
|
|
|
|
|
|
|
|
|
|
tar xf nginx-1.24.0.tar.gz
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
2.编译安装准备所需要的环境
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
yum -y install apr apr-util ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
3.配置
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
./configure --prefix=指定位置(/opt/nginx)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
4.编译
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
make
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
5.安装
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
make 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层模型
|
|
|
|
|
|
|
|
|
|
应用层(应用层+表示层+会话层)
|
|
|
|
|
|
|
|
|
|
传输层
|
|
|
|
|
|
|
|
|
|
网络层
|
|
|
|
|
|
|
|
|
|
数据链路层
|
|
|
|
|
|
|
|
|
|
物理层
|
|
|
|
|
|
|
|
|
|
数据封装和解封装的过程
|
|
|
|
|
|
|
|
|
|
封装:发送数据的过程
|
|
|
|
|
|
|
|
|
|
解封装:接受数据的过程
|
|
|
|
|
|
|
|
|
|
数据封装将上层数据添加各层协议,首部形成数据包
|
|
|
|
|
|
|
|
|
|
数据解封装根据协议首部信息,逐层剥离各层协议首部,并提取出应用层数据.
|
|
|
|
|
|
|
|
|
|
[![image-20240415112108523](file:///C:/%5CUsers%5C33163%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20240415112108523.png)](file:///C:/\Users\33163\AppData\Roaming\Typora\typora-user-images\image-20240415112108523.png)
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
[![image-20240405172236050](file:///C:/%5CUsers%5C33163%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20240405172236050.png)](file:///C:/\Users\33163\AppData\Roaming\Typora\typora-user-images\image-20240405172236050.png)
|
|
|
|
|
|
|
|
|
|
黄色标识:内网网关
|
|
|
|
|
|
|
|
|
|
arp 192.168.0.1 //看网关的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 (企业)
|
|
|
|
|
|
|
|
|
|
[![image-20240416151300284](file:///C:/%5CUsers%5C33163%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20240416151300284.png)](file:///C:/\Users\33163\AppData\Roaming\Typora\typora-user-images\image-20240416151300284.png)
|
|
|
|
|
|
|
|
|
|
#### (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用户登录
|
|
|
|
|
|
|
|
|
|
1. useradd zhangsan
|
|
|
|
|
|
|
|
|
|
passwd 123
|
|
|
|
|
|
|
|
|
|
2. 修改配置文件开启普通用户登录的功能
|
|
|
|
|
|
|
|
|
|
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服务
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
安装并运行(开机自启--不强制)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
2.采用匿名用户访问,对外共享目录/var/ftp ; 自定义的对外共享目录 在共享目录下创建一个目录,用来存放RPM包
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
目录创建:略
|
|
|
|
|
准备包:略 [包从镜像获取]
|
|
|
|
|
拷贝包:略 拷贝到对外共享目录下自己创建的目录
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
3.将该目录变成软件包目录
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
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)
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
[root@nfs-server ~]# exportfs -rv
|
|
|
|
|
exporting *:/opt/share-1
|
|
|
|
|
[root@nfs-server ~]# systemctl restart nfs
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
共享给谁
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
/opt/share-2 10.9.12.0/24(ro,sync,no_root_squash) 共享给一个网段
|
|
|
|
|
|
|
|
|
|
/opt/share-2 10.9.0.0/24(ro,sync,no_root_squash) 共享给某一个人
|
|
|
|
|
|
|
|
|
|
/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自带默认网站发布目录 项目源码 自定义网站发布目录
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
/etc/httpd/conf/httpd.conf apache主配置文件
|
|
|
|
|
|
|
|
|
|
/etc/httpd/conf.d/ apache子配置文件目录
|
|
|
|
|
|
|
|
|
|
/var/log/httpd/ apache日志
|
|
|
|
|
|
|
|
|
|
/var/log/httpd/access_log 访问日志 /etc/httpd/logs/
|
|
|
|
|
|
|
|
|
|
/var/log/httpd/error_log 错误日志
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
存放在网站发布目录下,index.html 默认主页
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
默认端口号 80
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
4.如何apache是否已经安装
|
|
|
|
|
|
|
|
|
|
rpm -qa | grep httpd
|
|
|
|
|
|
|
|
|
|
5.如何apache是否出运行状态
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
systemctl status httpd
|
|
|
|
|
|
|
|
|
|
ps aux | grep httpd 存在进程说明处于运行状态
|
|
|
|
|
|
|
|
|
|
lsof -i:80 判断80端口是否存在
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
6.apache是web服务器软件,所有的前端源码,都可以在apache上运行
|
|
|
|
|
|
|
|
|
|
7.网站服务器 对外共享文件资源
|
|
|
|
|
|
|
|
|
|
mkdir /var/www/html/download
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
touch /var/www/html/download/file{1..10}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
8.命令测试服务器是否正常运行
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
curl IP地址/域名
|
|
|
|
|
|
|
|
|
|
elinks IP地址/域名 文本的形式
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
127.0.0.1 域名 localhost
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
9.apache主配置文件
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
Listen 80 监听端口
|
|
|
|
|
|
|
|
|
|
ServerRoot /etc/httpd/
|
|
|
|
|
|
|
|
|
|
DocumentRoot "/var/www/html" 网站发布目录
|
|
|
|
|
|
|
|
|
|
<Directory / > 设置目录的属性 Require all denied 拒绝 </Directort>
|
|
|
|
|
|
|
|
|
|
Require all granted 允许
|
|
|
|
|
|
|
|
|
|
ErrorLog "/etc/httpd/logs/error_log" 指定错误日志
|
|
|
|
|
|
|
|
|
|
<IfModule log_config_module> 定义日志格式 </IfModule>
|
|
|
|
|
|
|
|
|
|
CustomLog "logs/access_log" combined 定义访问日志 存放位置及文件名 格式的名字
|
|
|
|
|
|
|
|
|
|
IncludeOptional conf.d/*.conf 加载子配置文件
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
实验
|
|
|
|
|
|
|
|
|
|
apache虚拟主机
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
可以实现在一台服务器部署多个项目
|
|
|
|
|
|
|
|
|
|
基于端口
|
|
|
|
|
基于域名
|
|
|
|
|
基于IP地址
|
|
|
|
|
|
|
|
|
|
三种方式使用那种都可以,但是选择其中一种后,剩余的保持一直
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
1.将项目上传到服务器
|
|
|
|
|
|
|
|
|
|
2.配置虚拟主机 [root@VM-0-5-centos conf.d]# cat a.conf b.conf c.conf
|
|
|
|
|
|
|
|
|
|
[![image-20240423145430788](file:///C:/%5CUsers%5C33163%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20240423145430788.png)](file:///C:/\Users\33163\AppData\Roaming\Typora\typora-user-images\image-20240423145430788.png)
|
|
|
|
|
|
|
|
|
|
<VirtualHost *:81>
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
ServerName localhost
|
|
|
|
|
DocumentRoot /web-1
|
|
|
|
|
</VirtualHost>
|
|
|
|
|
<Directory /web-1>
|
|
|
|
|
|
|
|
|
|
AllowOverride all
|
|
|
|
|
Require all granted
|
|
|
|
|
</Directory>
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
<VirtualHost *:82>
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
ServerName localhost
|
|
|
|
|
DocumentRoot /web-2
|
|
|
|
|
</VirtualHost>
|
|
|
|
|
<Directory /web-2>
|
|
|
|
|
|
|
|
|
|
AllowOverride all
|
|
|
|
|
Require all granted
|
|
|
|
|
</Directory>
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
<VirtualHost *:83>
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
ServerName localhost
|
|
|
|
|
DocumentRoot /web-3
|
|
|
|
|
</VirtualHost>
|
|
|
|
|
<Directory /web-3>
|
|
|
|
|
|
|
|
|
|
AllowOverride all
|
|
|
|
|
Require all granted
|
|
|
|
|
</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.添加对应端口的监听
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
81 82 82
|
|
|
|
|
|
|
|
|
|
Listen 81
|
|
|
|
|
Listen 82
|
|
|
|
|
Listen 83
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
5.重启服务
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
略
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
6.访问
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
IP+端口
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### (2)http日志
|
|
|
|
|
|
|
|
|
|
apache日志
|
|
|
|
|
|
|
|
|
|
定义日志格式
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
https://httpd.apache.org/docs/2.4/mod/mod_log_config.html
|
|
|
|
|
|
|
|
|
|
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架构
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
[root@wordpress ~]# yum -y install httpd mariadb mariadb-server php php-fpm php-mysql php-gd gd
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
2.启动LAMP架构
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
systemctl start httpd mariadb php-fpm
|
|
|
|
|
systemctl enable httpd mariadb php-fpm (可选)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
3.对服务进行配置apache、mariadb、php均采用默认的配置
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
apache:不做修改 网站发布目录采用默认/var/www/html 端口默认:80
|
|
|
|
|
|
|
|
|
|
mariadb:用默认的,但是需要准备一些东西 【库】 默认管理员用户(root)没有密码,为了安全设定一个密码
|
|
|
|
|
|
|
|
|
|
设定密码:[root@wordpress ~]# mysqladmin -u root password '123'
|
|
|
|
|
进入数据库:[root@wordpress ~]# mysql -u root -p123
|
|
|
|
|
创建库:MariaDB [(none)]> create database wordpress;
|
|
|
|
|
|
|
|
|
|
php:不做修改 采用默认配置
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
4.上传项目源码,并将该源码放到网站发布目录下
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
[root@wordpress ~]# wget http://10.9.12.206:30120/directlink/1/safeware/wordpress-4.9.1-zh_CN.tar.gz
|
|
|
|
|
[root@wordpress ~]# cp -r wordpress/* /var/www/html/
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
5.设置源码权限
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
[root@wordpress ~]# chmod 777 /var/www/html/* -R
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
6.访问测试
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
LNMP架构
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
扩展:针对java开发的项目
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
war包 L A/N M J T linux+apache/nginx+mariadb/mysql+jdk+tomcat
|
|
|
|
|
jar包 L A/N M J linux+apache/nginx+mariadb/mysql+jdk
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### (4)DNS
|
|
|
|
|
|
|
|
|
|
以下是 DNS 请求的全过程,包括根域名服务器的参与:
|
|
|
|
|
|
|
|
|
|
1. **输入网址**:
|
|
|
|
|
|
|
|
|
|
用户在浏览器中输入网址(例如www.example.com)并按下回车。
|
|
|
|
|
|
|
|
|
|
2. **本地 DNS 缓存查询**:
|
|
|
|
|
|
|
|
|
|
计算机首先检查本地 DNS 缓存,看看是否已经保存了该域名对应的 IP 地址。
|
|
|
|
|
|
|
|
|
|
3. **向本地 DNS 服务器发起请求**:
|
|
|
|
|
|
|
|
|
|
如果本地 DNS 缓存中没有找到对应的 IP 地址,计算机会向本地 DNS 服务器发起请求。
|
|
|
|
|
|
|
|
|
|
4. **递归查询开始**:
|
|
|
|
|
|
|
|
|
|
本地 DNS 服务器开始递归查询过程,向根域名服务器发起查询请求。
|
|
|
|
|
|
|
|
|
|
5. **向根域名服务器查询**:
|
|
|
|
|
|
|
|
|
|
根域名服务器知道整个互联网的域名分布情况,但它不知道具体域名对应的 IP 地址。根域名服务器会将查询转发给顶级域名服务器。
|
|
|
|
|
|
|
|
|
|
6. **向顶级域名服务器查询**:
|
|
|
|
|
|
|
|
|
|
顶级域名服务器知道每个顶级域名(如.com、.net、.org等)的权威 DNS 服务器地址。本地 DNS 服务器向顶级域名服务器查询该域名的权威 DNS 服务器的 IP 地址。
|
|
|
|
|
|
|
|
|
|
7. **向权威 DNS 服务器查询**:
|
|
|
|
|
|
|
|
|
|
顶级域名服务器返回权威 DNS 服务器的 IP 地址后,本地 DNS 服务器向权威 DNS 服务器发起查询请求,请求该域名对应的 IP 地址。
|
|
|
|
|
|
|
|
|
|
8. **返回 IP 地址**:
|
|
|
|
|
|
|
|
|
|
权威 DNS 服务器查询到该域名对应的 IP 地址后,将其返回给本地 DNS 服务器。
|
|
|
|
|
|
|
|
|
|
9. **返回给客户端**:
|
|
|
|
|
|
|
|
|
|
本地 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.你要去免密谁,给你发送你的密钥(公钥)
|
|
|
|
|
|
|
|
|
|
1. 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.把文件拷贝给别人
|
|
|
|
|
|
|
|
|
|
scp -r 源文件 谁IP:路径 拷贝到对方的那个目录下
|
|
|
|
|
|
|
|
|
|
2.从别人哪里获取文件
|
|
|
|
|
|
|
|
|
|
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)](https://cloud.tencent.com/document/product/213/46400) 腾讯云配置优化内核
|
|
|
|
|
|
2024-05-30 17:48:02 +08:00
|
|
|
|
内核优化-网络类(tcp协议) 内存类 进程类 io类
|