0回顾Linux系统硬件及系统安装部署
系统硬件知识回顾
用途分类:家用主机设备,企业服务器设备(物理主机云主机)
硬件尺寸分类:服务器尺寸U 1U 2U 3UJI机架服务器,刀片服务器,塔式服务器
性能分类:pc(x68_64)小型机服务器和大型机服务器(都搭载unix)
硬件组成说明:CPU :运算控制
内存:临时存储数据
磁盘:永久存储数据
网卡:网络通讯
电源:供电设备
主板:将所有硬件串联
风扇:硬件散热
阵列卡:将多个硬盘整合成一个盘
远程管理卡:控制远程开机关机安装系统
重要组成详细说明:
CPU: 型号至强Xeon 核数 路数 主频 缓存(L1L2L3)
内存信息 进程信息(程序运行起来)缓冲区(加快存储数据)缓存区(加快读取数据)
ps - 报告目前进程一个快照信息, 不能实时查看
top - 显示linux系统进程信息
磁盘信息: 磁盘容量(Byte-KByte-MB-GB-TB-PB)
接口(SATA --> SCSI --> SAS --> PCI-E)
磁盘转速(10krpm 15krpm)
电源: 冗余能力(双路电源 ups 发电机)
阵列卡: 将多块硬盘整合成一个块
提升单块硬盘容量
提升硬盘安全性 RAID 1
RAID1:优势提高数据存储安全性;
缺点存储效率降低存储容量有损失
提升硬盘存储效率
RAID0:优点提升数据存储效率
缺点安全性低
远程管理卡:网卡网口(管理ip地址)
硬件性能指标介绍
CPU - 内存 - 网卡 - 固态硬盘 - 机械硬盘
企业数据参数
高并发:
存储数据 --> 内存中(缓冲区) (UPS 发电机 专用电)--> 磁盘中
读取数据 --> 内存中(缓存区) --> 磁盘中
低并发
存储数据 --> 磁盘中
读取数据 --> 内存中(缓存区) --> 磁盘中
操作系统概念介绍: 人 (中介 操作系统) 管理硬件
系统组成:内核---解释器---外围软件程序
系统特点:开源 多用户 安全性 服务器常用操作系统
发展史:GUN / GPL
前者是个项目;之研究出了大多数;并未研发出内核;后者是个协议:通用许可协议(可更改,更改后需要进行是说明)
操作版本选择:
centos 7
redhat 7
debian
ubuntu
系统安装部署:
虚拟软件概念:虚拟多个真实的系统环境 共用硬件资源
如:(共享单车)
虚拟软件部署:
创建虚拟机 如何进行虚拟主机迁移
配置虚拟网络
注意:
系统虚拟化功能是否开启 bios
虚拟软件服务是否开启 CTRL+r --> services.msc --> 服务 vmware
如果无法运行虚拟主机 虚拟主机进程是否开启多个
操作系统安装:
下载镜像 xxx.ISO
将镜像文件加载到光驱
启动虚拟主机
进入后按tab 再按回车 输入:net.ifnames=0 biosdevname=0
更改网卡名称
修改网卡和主机名
操作系统分区过程:/dev/sda1-/boot /dev/sda2-swap 8G /dev/sda3-/
最小化安装:1236
系统用户名称和密码设置
RAID5/RAID10 有什么区别?
RAID5:
优势:数据读取写入最快,最大优势提高硬盘容量,比如3块80G的硬盘做raid0 可用总容量为240G。速度是一样
镜像,数据安全强,2块硬盘做raid一块正常运行,另外一块镜像备份数据,保障数据的安全。一块坏了,另外一块硬盘也有完整的数据,保障运行。任意N-1快硬盘都有完整的数据
缺点:只允许单盘故障,一盘出现故障得尽快处理。有盘坏情况下,raid5 IO/CPU性能狂跌,此时性能烂到无以复加
建议:盘不多,对数据安全性和性能提示都有要求,raid5是个不错选择,鉴于出问题的性能,盘多可考虑riad10
RAID10:
优势:兼顾安全性和速度。基础4盘的情况下,raid10允许对柜盘2块故障,随着硬盘数量的提示,容错量也会相对应提升。这是raid5无法做到的。
缺点:对盘的数量要求稍高,磁盘使用率为一半。
建议:硬盘数量足够的情况,建议riad10.
远程连接排错思路
确认链路是否通畅 ping 10.0.0.200
确认是否有组织策略
远程服务是否开启
telnet 10.0.0.200
systemctl status sshd
ps -ef查询系统正在运行的所有进程
强制停止进程方法:
kill 进程号码 ---杀死进程,反复执行命令会有提示
kill -9 进程号 强行杀死(一定要慎用)
killall 进程名 ---杀死进程反复执行有提示
pkill 信息 ---模糊杀进程
批量编辑多行信息 vim
添加注释信息:
第一个历程: 先将光标移动到要编辑内容的第一行
第二个历程: 进入视图块模式
ctrl+v
第三个历程: 移动光标选中多行信息
第四个历程: 进入编辑模式
shift+i --- 编辑信息
第五个历程: 退出编辑模式
esc
取消注释信息:
第一个历程: 先将光标移动到要编辑内容的第一行
第二个历程: 进入视图块模式
ctrl+v
第三个历程: 移动光标选中多行信息
第四个历程: 删除选中的信息
d 或者 x
如何在系统中生成随机数(类似验证码)
利用tr命令
-c -C ,--complement use the complement of SET1
- d --delete
delete characters in SET1, do not translate
删除指定字符不做替换
tr -cd'a-zA-Z0-9'
echo $RANDOM
/etc/profile.d --- 存放脚本文件信息, 每次连接登录系统,都会加载此目录中的脚本文件
日志文件需要做什么处理
日志文件切割处理: 按照时间(每小时 每天 每周)
vi cut_log.sh ---> 特殊目录
/etc/cron.daily --- 每天执行目录中脚本信息
/etc/cron.hourly --- 每小时执行目录中脚本信息
/etc/cron.monthly --- 每月执行
/etc/cron.weekly --- 每周执行
#!/bin/bash
mv /var/log/messages /var/log/messages_时间信息
systemctl restart rsyslog.service
yum install -y tree
特点说明: 可以解决依赖 所有软件包可以直接下载
缺点说明: 依赖网络
yum list --- 显示yum仓库中所有可用的软件包
yum search/provides --- 搜索每个包里面是否有指定命令文件
yum remove/erase --- 卸载软件包(慎用)
yum reinstall --- 重新安装修复程序
yum localinstall --- 本地安装软件程序 并解决软件安装依赖问题
rpm -qa --- 查看确认软件是否安装成功
rpm -ql --- 查看软件安装生成数据信息保存路径
enable 开机运行文件
查看用户信息id oldboy
用户设置密码:passwd 用户信息
如何批量创建用户
情况一: 创建 oldboy01 oldboy02 oldboy03 .. oldboy10 并且每个用户密码都是123456
for循环 : 语句格式
for 变量 in {鸡蛋,香肠,馅饼,油条,包子}
do
买早点 $变量
done
useradd oldboy01
useradd oldboy02
useradd oldboy03
...
useradd oldboy10
for username in oldboy{01..10}
do
useradd $username && echo 123456|passwd --stdin $username
done
情况二: 创建 oldboy oldgirl olddog oldbaby 并且用户密码是随机密码 6位
思路一: 解决随机密码问题:
tr -cd 'a-zA-Z0-9'
思路二: 批量创建用户
分析情况一: 批量创建用户较多
for username in `cat /server/scripts/user.txt`
do
useradd $username
done
==============================================================================
补充: `` 用法说明 : 将反引号里面命令先执行, 将结果信息被反引号外面命令进行调用
# which ssh
/usr/bin/ssh
# rpm -qf /usr/bin/ssh
openssh-clients-7.4p1-16.el7.x86_64
将两条命令整合为一条:
# rpm -qf `which ssh`
openssh-clients-7.4p1-16.el7.x86_64
==============================================================================
分析情况二: 批量创建用户较少
for username in {oldboy,oldgirl,olddog,oldbaby}
do
useradd $username
done
思路三: 创建用户和密码信息
for username in {oldboy,oldgirl,olddog,oldbaby}
do
password_info=`tr -cd 'a-zA-Z0-9'
useradd $username
echo $password_info | passwd --stdin $username
echo $username $password_info >> /tmp/user_info.txt
done
系统下载优化
确认是否更新好了base和epel源
yum repolist
yum clean all --- 做yum刷新重置
操作系统安全优化
关闭selinux
临时关闭:setenforce 0
永久关闭: sed -i '7s#enforcing#disabled#g' /etc/selinux/config
sed命令语法: sed 参数 '' 文件信息
sed 's#enforcing#disabled#g' /etc/selinux/config把字符进行替换
系统字符优化
LANG
临时设置:export LANG=zh_CN.utf8
永久设置: vim /etc/locale.conf
localectl set-locale LANG=zh_CN.utf8临时加永久
时间优化
下载软件包
命令:yum install -y chrony
执行systemctl start chrony
开启时间同步功能
timedatectl set-ntp 1
方法二
ntpdate
操作系统文件属性知识
# ls -il /etc/hosts67674863 - rw-r--r-
- 1 root root 184 Dec 11 10:06 /etc/hosts
① ② ③ ④ ⑤ ⑥ ⑦ ⑧
文件属性 inode索引信息
简述: inode -> index node 索引节点 类似目录
文件属性 文件类型信息
简述: 不同文件类型,操作处理方式不同
文件属性 文件权限信息
简述: 对文件有什么操作能力 read/write/execute
文件属性 文件硬链接信息
简述: 硬链接类似于查看文件数据信息多个入口
文件属性 文件属主信息
简述: 文件创造者 父母 文件数据最高权限
文件属性 文件属组信息
简述: 文件管理者 亲人 文件数据权限需要设置
其它用户 隔壁老王 文件数据权限最低 read
文件属性 文件大小信息
简述: 文件占用了多少磁盘资源
文件属性 文件时间信息
简述: 文件修改时间信息 (访问时间 改变时间)
普通文件 -
目录文件 d
链接文件 l
设备文件 b block 存储设备文件 /dev/sda1
c charset 字符流设备文件 /dev/urandom
s socket 网络套接字文件 ???
根据文件名称查找到所在路径
locate --> 前提: 更新或者创建数据库文件 updatedb
搜索的条件:
根据文件类型搜索数据 -type
find /oldboy -type f/d/l/c/b/s
根据文件名称搜索数据 -name
find /oldboy -name "*dog*" *通配符记不清楚了就开始用
忽略大小写搜索
find /oldboy -iname "oldboy.txt"
测试一个局域网中,有哪些IP地址是可以使用的?
思路一: ping多个地址
for IP in {1..100}
do
ping 192.168.20.$IP
done
思路二: 了解ping命令用法
ping -c 3 -q 192.168.20.52 >>/tmp/ping.log
思路三: 访问通或者不通要有提示说明
如果ping是通: 提示 xxx地址 正在使用 (绿色)
如果ping不通: 提示 xxx地址 未被使用 (红色)
if [ $? -eq 0 ]
then
echo -e "\e[32;1m提示 xxx地址 正在使用\e[0m"
else
echo -e "\e[31;1m提示 xxx地址 未被使用\e[0m"
fi
echo -e "\e[31;1moldboy69\e[0m" 红色
echo -e "\e[32;1moldboy69\e[0m" 绿色
编写脚本:
#!/bin/bash
for IP in {1..100}
do
ping -c 3 -q 192.168.20.$IP >>/tmp/ping.log
if [ $? -eq 0 ]
then
echo -e "\e[32;1m提示信息: 192.168.20.$IP 正在使用\e[0m"
else
echo -e "\e[31;1m提示信息: 192.168.20.$IP 未被使用\e[0m"
fi
done
find
根据文件类型搜索数据 -type
find /oldboy -type f/d/l/c/b/s
根据文件名称搜索数据 -name
find /oldboy -name "*dog*"
find /oldboy -iname "oldboy.txt"
根据文件大小搜索数据
find /old -size +10k 寻找大于10k的文件
find /old -size -1G 寻找小于1G的文件
find /old -size 10 寻找正好是10k的文件
对于find命令根据大小查找数据单位信息
`b' for 512-byte blocks (this is the default if no suffix(角标/下标) is used)
1个块=512字节 +1 > 512字节 ok -2 <1024 (小于一整块) 1 = 512字节 ok
`c' for bytes
最小尺寸单位
`w' for two-byte words
以两个字节作为一个单词找出不同尺寸文件
`k' for Kilobytes (units of 1024 bytes)
依据kb尺寸寻找数据
`M' for Megabytes (units of 1048576 bytes) ****
依据Mb尺寸寻找数据
`G' for Gigabytes (units of 1073741824 bytes)
依据Mb尺寸寻找数据
根据路径深度查找
find /oldboy -maxdepth 1 -name "oldboy01.txt"
-maxdepth --- 查找数据最深深度
-mindepth --- 查找数据最小深度, 从最小深度继续向下查找
根据条件逻辑查找数据
find /oldboy -size +6k -a -name "oldboy*"
并且逻辑关系 -a
find /oldboy -size +6k -name "oldboy*"
请找出文件名称是oldboy开头的文件 和 oldgirl开头的文件
find /oldboy -name "oldboy*" -o -name "oldgirl*"
根据时间条件查找数据
find /oldboy -mtime +7 找距离当前时间7天以前的数据
-7 找距离当前时间七天以内的数据
7 找距离当前时间正好七天的数据
批量删除指定数据
find / -name "*1"-delete
批量删除以1结尾的文件
find / -type f -name "*1" | xargs rm
批量删除第二种方法
xargs
将产生信息进行转换,转换位命令可以识别的参数或对象信息
xargs < test.txt
1 2 3 4 5 6 7 8 9
xargs -n3 利用反引号进行处理 rm -f `find / -type f -name "a*"` 删除根目录下名字位a 的文件 利用 -exec来进行处理 find ./ type f -name "a*" -exec rm -f {} \; find / -type f -name "a*" -exec rm {} \;-o -type f -name "b*" -exec rm {} \; 产看目录文件结构信息 tree tree -L 3 指定查看目录层级信息 tree -d 之查看完整目录结构信息 如何压缩数据信息 tar 有压缩和解压的作用 z 数据压缩方式 c 创建一个压缩文件 v 显示压缩过程 f 指定压缩包路径信息 h 提取指定压缩链接文所件指定源文件 将数据解压 tar xvf x 提取压缩包中的数据 t查看列表显示压缩包中的数据信息 补充: 提示信息作用:tar: Removing leading `/' from member names 解释: 将绝对路径 / 根目录信息进行移除 , 压缩数据 作用: 对系统数据信息进行保护 不想保护数据, 想解压时将源数据进行覆盖: 压缩时: tar zcvPf ---保留住根目录 解压时: tar xPf ---保留住根目录