系统有关方面复习
往lftp上传文件
yum -y install lftp
把上传文件放到跟下
put 文件名
清除buff/cache里的缓存信息
echo 3 > /proc/sys/vm/drop_caches
yum -y install net-tools
下载ifconfig命令,用于ip查看
ifconfig ens33|awk -F '[ :]+' 'NR==2 {print $3}'
linux中文设置
查看系统是否是 zh_CN.UTF-8 如果不是手动添加一行到此文件。
[root@chao etc]# cat locale.conf
LANG="zh_CN.UTF-8"
开启定时任务
1.安装crontab
[root@CentOS ~]# yum install vixie-cron
[root@CentOS ~]# yum install crontabs
vixie-cron软件包是cron的主程序;
crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。
2.开启crontab服务
service crond start //启动服务
用以下的方法启动、关闭这个cron服务:
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重新启动服务
service crond reload //又一次加载配置
查看crontab服务状态:service crond status
手动启动crontab服务:service crond start
设置开机自己主动启动crond服务:
[root@CentOS ~]# chkconfig crond on
查看各个开机级别的crond服务运行情况
[root@CentOS ~]# chkconfig –list crond
crond 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
能够看到2、3、4、5级别开机会自己主动启动crond服务
取消开机自己主动启动crond服务:
[root@CentOS ~]# chkconfig crond off
ps aux --sort -%cpu | less 查看本机占用CPU使用率最多的进程
grep "model name" /proc/cpuinfo |wc -l 查看系统有几个cpu
中间件的介绍
中间件是一种独立的系统软件或程序服务、中间件位于客户端与服务端上。
1、在B服务器上开启内核路由转发参数
临时生效:
echo "1" > /proc/sys/net/ipv4/ip_forward
永久生效的话,需要修改sysctl.conf:
net.ipv4.ip_forward = 1
执行sysctl -p马上生效
查看mac地址
cat /sys/class/net/ens33/address
网络ip图形化
nmtui
二层交换机与三层交换机的区别
工作层级不同
二层交换机工作在数据链路层,三层交换机工作在网络层。
功能不同
二层交换机基于mac地址访问,只做数据转发。三层基于ip地址转发,包含二层交换机功能。
应用不同
二层交换机用于网络接入层,三层用于网络核心层
支持协议不同
二层支持物理层层,数据链路层。三层支持物理层,数据链路层,网络层协议。
firewalld跟iptables有哪些区别?
1、firewalld可以动态修改单条规则,而不需要像iptables那样,在修改了规则后必须得全部刷新才可以生效;
2、firewalld在使用上要比iptables人性化很多,即使不明白“四张表五条链”而且对TCP/IP协议也不理解也可以实现大部分功能。
iptables其实并不是真正的防火墙。真正起防火墙作用的是netfilter (内核态 位于内核空间)。
语法:
iptables -t 表 动作 链 匹配条件 -j 目标动作
利用iptables将本地的80端口请求转发到8080,当前主机ip为192.168.1.
iptables -t nat -A PREROUTING -d 192.168.1.1 -p tcp --dport 80 -j REDIRECT --to-port 8080
Linux服务器被入侵的症状,并且怎么去做?
被入侵后的服务器会消耗非常高的资源,尤其是cpu等,可以用此机器挖矿,发送垃圾邮件,消耗宽带发动dos攻击。
表现:服务器变慢,跑的网页的话(运行着web用服务),网站打开缓慢。
黑客入侵登录到了机器,怎么操作?
W 查看当前有谁登录到在服务器上
last 查看谁曾经登录过服务器
回顾下历史命令,看看坏蛋执行了什么?(history)
vim ~/.bash_histyory ls -a(显示隐藏文件)
如果被删除了,遇到高手,仔细检查机器
检查哪些进程在消化cpu (找出高的),--sort
检查网络连接
此时不要去打草惊蛇,T 掉坏蛋
马上进行安全加固
例如需要改ssh 端口及禁止root远程登录。Pkill -u kill-9
禁止root远程登录: 添加一个普通用户并且提权
lsblk 查看系统磁盘
fdisk 创分区 fdisk/dev/sdb
mkfs.xfs /dev/sdb -f
格式化磁盘
mkfs.xfs /dev/sdc1
mount /dev/sdc1 /mnt/dir1
挂载点 目录文件
mount /dev/sdc1 /mnt/dir1 挂载
umount /dev/sdc1 /mnt/dir1 取消挂载时候要注意
1不能在当前挂载目录中,否则取消挂载失败
2 想要格式化磁盘 ,必须先要取消挂载,才能格式化成功
3 挂载前,需要手动创建挂载目录,然后格式化分区,
然后再去手动挂载。
扩容操作 添加新磁盘
pvcreate /dev/sdd 创建pv
pvs 查看pv
vgcreate +vg名字 /dev/sdd 创建vg
vgs 查看vg
lvcreate -L 200M -n lv1+ vg名字 创建lv
lvs 查看lv
格式化,创建文件系统挂载
mkfs.xfs /dev/datevg/lv1
mount /dev/sdb /data/lv1 挂载
扩大vg步骤:
1.pvcreate /dev/sdd 空磁盘进行pv
2.vgextend vg名字 /dev/sdd 空磁盘进行pv扩大容量
lvextend -L +1G /dev/datavg/lv1 lv1扩容
pvmove /dev/sdb /dev/sdc 数据迁移sdb---sdc
lvremove datavg /dev/lv1 摘除lv1
vgreduce datavg /dev/sdd 摘除sdd
pvremove /dev/sdb /dev/sdc 删除pv所在/dev/sdb扩容 (详情去找lvm逻辑卷的文本文件。)
文件查找
按名称查找
find /tmp/ -name "1.txt" 按照文件名字查找
find /tmp/ -iname "FILE" 忽略大小写查找
按照文件大小查找
find /etc -size +5M 查找在/etc/文件下大于5M的文件
find /etc -size 5M 查找正好是5M的文件
find /etc -size -5M 查找正好是小于5M的文件
find / -maxdepth 2 -a -name "ifcfg-ens33" maxdepth 深度 按照目录深度查找 (-a 并且的意思) 要满足2个条件
find /etc -mtime +5 按照修改时间查找
mtime:修改时间(modify time),指的是文件内容最后被修改的时间
ctime:变更时间(change time),指的是文件本身(权限、所属组、位置......)最后被变更的时间,变更动作可以使chmod、chgrp、mv等等;
atime:访问时间(access time),指的是文件最后被读取的时间
find / -atime +3 -exec rm -rf {} ;
按文件类型:
find /dev -type f //f普通
find /dev -type d
当前目录查找 //d目录
find . -perm 644 .叫做当前目录 查找当前目录下 权限为644
find /tmp ! -name "1.txt" ! 取反 不找1.txt文件找其他文件
find /tmp/ -name "1.txt" -o -name "2.txt" (-o或者的意思)
使用 -a这个参数可以链接2个不同的条件且这2个条件必须要满足!
-o 在这个参数可以链接2个条件,只要满足1个就会被找出来
find /etc -name "ifcfg-*" | wc -l 统计个数
find /tmp/ -empty 查找/tmp 下的空文件
-exec 参数传递
find /tmp/ -name "1.txt" -exec cp -rvf {} /tmp ;
-xargs 参数传递
find /etc -name "ifcfg" |xargs -I {} cp -rf {} /tmp
V 显示过程
{} 占位符
/路径
\ ;格式
dd if=/dev/zero of=test bs=1M count=5
造文件 of=test 名字 bs 大小 count份数
du -sh *
查看目录下每个文件大小
du -sh 文件名
date 查看系统时间
date 月日时分
修改当前系统时间
每一个单位都是2位数字 如 :01
date 10010900
远程拷贝文件 scp 1.sh 10.9.62.94:/tmp
scp 10.9.62.176:/tmp/1.txt /tmp/ 把B机器的/tmp下的文件 拷贝到本机路径下
说说更换硬盘的详细过程,及报修流程。
1 确认硬盘故障后,确认硬盘的型号例如ST3300657 300G(容量) 10K RPM(转速) SATA(SAS)(接口类型)
2 找到硬盘后除了新盘,旧盘一定要做硬盘检测,
[找一台旧服务器,一般在公司]并且清除数据,让硬盘变成ready状态。才可以发送(快递)到IDC机房。机房值守收到硬盘后,工程师要给现场派发工单。
更换服务器名称为:XXXX 哪个机房,机柜,的ID=?
例如
请更换硬盘:
亦庄4M3A机房, K3列 服务器D161234. ID=2
300G 型号:st3300657ss 10k rpm sata
现场更换完毕后,旧的盘单独存放。定期发送给相关部门进行销毁
2 了解磁盘容量及型号--->要一一对应
fdisk不能格式化2t的磁盘。
fdisk和gdisk命令区别
fdisk和gdisk命令都可以给磁盘分区,但是在公司里,如果磁盘大于2T,只能用gdisk命令。
公司里使用fdisk命令最多。必会,基本不会手动分区,而是执行脚本。
面试题:有一块磁盘容量是2T rpm 7200转 3.5 寸 sata sas
请用什么命令进行分区?gdisk
Yum安装源
yum provides 查看软件包名
ls /etc/yum.repos.d/ 默认(国外源)
yum repolist 查看源的属性
更改国内源
sed -ri s/^#baseurl/baseurl/g /etc/yum.repos.d/CentOS-Base.repo
sed -ri s/^mirrorlist/#mirrorlist/g /etc/yum.repos.d/CentOS-Base.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all #清除yum缓存
yum makecache #创建新的本地yum缓存 yum -y install httpd 安装
yum -y install epel-release #安装扩展源
给你一台新买的服务器(物理机)(搭建一个项目),你要做什么?
1 申请服务器上线(注明raid阵列级别)(注意服务器硬件配置)----申请ip地址(资源分配)【机器的交换端口,物理机柜位置,ip地址】----确认网络结构(内?外?)---
(提交设备进场手续,与上架时间)------现场机房上架------连线(综合布线)---网络组划分网络----现场手做RAID------安装操作系统----确认服务器账户添加------登录跳板机ip(堡垒机)---登陆服务器ip---执行业务
初始化脚本-----更新CMDB信息(大公司资产管理系统,小公司execl表格)。
-----搭建应用服务----安装环境----测试
进行集群的时间对时
首先修改成错误的时间, 然后安装软件包yum -y install ntpdate-4.2.6p5-29.el7.centos.x86_64 执行ntpdate -s ntp.api.bz 使用date命令查看时间是否修改成功
计划任务
crontab -e 编写计划任务
crontab -l 查看计划任务
crontab -r 删除计划任务
分 时 日 月 周 -- 一一对应
0 2 * * * /mysql_back.sh
单用户修改fstab:
1.重启系统 进入两行模式
2.按"e"进入编辑模式,将光标定位到linux16这一行,在行尾添加:init=/bin/sh,然后按ctrl+x
3.mount -o remount,rw / 以只读的方式挂根
passwd root
改密码
Vi/etc/fstab 把跟注释取消掉
4.修改root密码
5.如果开启了selinux,如果没有,则跳过此步
(#touch /.autorelabel)
6.# exec /sbin/init
三.常见的日志文件(系统、进程、应用程序)
***# tail /var/log/messages //系统主日志文件
tail -20 /var/log/messages
tail -f /var/log/messages //动态查看日志文件的尾部
tailf /var/log/secure //认证、安全
tail /var/log/maillog //跟邮件postfix相关
tail /var/log/cron //crond、at进程产生的日志 计划任务日志
tail /var/log/dmesg //和系统启动相关 开机时核心检测过程中所产生的信息
tail /var/log/audit/audit.log //系统审计日志
tail /var/log/yum.log //yum yum程序相关的日志
tail /var/log/mysqld.log //MySQL
tail /var/log/xferlog //和访问FTP服务器相关 vsftpd日志
w //当前登录的用户 /var/log/wtmp
last //最近登录的用户 /var/log/btmp
lastlog //所有用户的登录情况 /var/log/lastlog
域名服务DNS
vi /etc/resolv.conf 地址解析即时生效 企业里解析
vi /etc/hosts ##添加本地解析
添加路由
添加静态路由:临时创建路由通信(关机重启不生效)
route add -net 10.18.45.0 netmask 255.255.255.0 gw 10.18.45.1
删除静态路由:
route del -net 10.18.45.0 netmask 255.255.255.0 gw 10.18.45.1
Destination Gateway Genmask Flags Metric Ref Use Iface
目标网络 网关
永久添加路由:
cat /etc/rc.local
/sbin/route add -net 10.0.0.0/8 gw 172.16.153.1
/sbin/route add -net 172.16.0.0/12 gw 172.16.153.1
/sbin/route add -net 192.168.0.0/16 gw 172.16.153.1
删除默认路由/网关
ip r d default
删除静态路由
ip r d 10.18.40.0/24
修改主机名
第一种方法:
hostnamectl set-hostname NEW_NAME:设定主机名,永久有效,重新登录即可看到
另一种方法:
vim /etc/hostname 修改配置文件,永久有效,要重启服务器生效
快速生成10G文件
ddif=/dev/zeroof=testbs=10Mcount=1024
mysql数据库
三步安装5.7版本
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
yum -y install mysql-server
mysql 优化配置csdn私密里有。
nginx(具体上csdn查找)
Nginx是一个轻量级,高性能的 HTTP 和 反向代理 服务,也是一个IMAP/POP3/SMTP服务
1、nginx功能有哪些
Web 服务器
作为负载均衡服务器
作为邮件代理服务器
Nginx 安装非常的简单,配置文件 非常简洁(还能够支持perl语法),Bugs非常少的服务器
2、nginx 日志文件 access_log
3、常用模块:
访问模块
ngx_http_access_module模块
实现基于用户的访问控制
ngx_http_auth_basic_moudle模块
主要是用来查看http的状态信息
ngx_http_stub_status_module模块
nginx日志模块
ngx_http_log_module模块
压缩模块,有利于传输数据的大小减少,但是cpu使用会变高。因为要对传输的数据进行压缩。
ngx_http_gzip_module模块
设置https连接的模块
ngx_http_ssl_module模块
重新写入模块
ngx_http_rewrite_module模块
可以基于这个模块做防盗链
ngx_http_referer_module模块
向由代理服务器响应给客户端的响应报文添加自定义首部,或修改指定首部的值
ngx_http_headers_module模块
这个没什么好说的,没这个nginx就无法代理转发请求
ngx_http_proxy_module模块
将后端的多个服务器定义成服务器组,对代理的请求做基于七层的负载均衡
ngx_http_upstream_module
nginx的基础监控
- 进程监控
- 端口监控
注意: 这两个是必须要加在zabbix监控,加触发器有问题及时告警。
nginx 提供了 ngx_http_stub_status_module.这个模块提供了基本的监控功能
1. Nginx 是如何实现高并发的?
异步,非阻塞,使用了epoll 和大量的底层代码优化。
如果一个server采用一个进程负责一个request的方式,那么进程数就是并发数。正常情况下,会有很多进程一直在等待中。
而nginx采用一个master进程,多个woker进程的模式。
master进程主要负责收集、分发请求。每当一个请求过来时,master就拉起一个worker进程负责处理这个请求。
同时master进程也负责监控woker的状态,保证高可靠性
woker进程一般设置为跟cpu核心数一致。nginx的woker进程在同一时间可以处理的请求数只受内存限制,可以处理多个请求。
tomcat 有关优化及故障排除
关于CentOS中tomcat的8005端口启动不起来或者启动缓慢的解决办法
yum install rng-tools # 安装rngd服务(熵服务,增大熵池)
systemctl start rngd # 启动服务
linux 下调整tomcat的内存设置修改bin目录下catalina.sh
添加以下语句
JAVA_OPTS="-Xms1024m -Xmx4096m -XX:PermSize=512m -XX:MaxPermSize=2048m"
tomcat默认并发是200(官方),可以修改,但实际用的时候也就200并发左右
Zabbix 优点
开源,无软件成本投入
Server 对设备性能要求低
支持设备多,自带多种监控模板
支持分布式集中管理,有自动发现功能,可以实现自动化监控
Zabbix 缺点
需在被监控主机上安装 agent,所有数据都存在数据库里, 产生的数据很大,瓶颈主要在数据库。
Zabbix主要控件
1、主机 (host)
- 一台你想监控的网络设备,用IP或域名表示
2、主机组 (host group)
- 主机的逻辑组;它包含主机和模板。一个主机组里的主机和模板之间并没有任何直接的关联。通常在给不同用户组的主机分配权限时候使用主机组。
3、监控项 (item)
- 你想要接收的主机的特定数据,一个度量数据。
4、触发器 (trigger)
- 一个被用于定义问题阈值和“评估”监控项接收到的数据的逻辑表达式
当接收到的数据高于阈值时,触发器从“OK”变成“Problem”状态。当接收到的数据低于阈值时,触发器保留/返回一个“OK”的状态。
5、动作 (action)
- 一个对事件做出反应的预定义的操作。
一个动作由操作(例如发出通知)和条件(当时操作正在发生)组成
6、媒介 (media)
- 发送告警通知的手段;告警通知的途径
7、远程命令 (remote command)
- 一个预定义好的,满足一些条件的情况下,可以在被监控主机上自动执行的命令
8、模版 (template)
- 一组可以被应用到一个或多个主机上的实体(监控项,触发器,图形,应用,Web场景等)的集合
模版的任务就是加快对主机监控任务的实施;也可以使监控任务的批量修改更简单。模版是直接关联到每台单独的主机上。
9、web 场景 (web scenario)
- 利用一个或多个HTTP请求来检查网站的可用性
10、前端 (frontend)
- Zabbix提供的web界面
11、Zabbix server
- Zabbix软件实现监控的核心程序,主要功能是与Zabbix server和Agents进行交互、触发器计算、发送告警通知;并将数据集中保存等
12、Zabbix agent
Zabbix agent部署在监控的目标上,主动监测本地的资源和应用(硬件,内存,处理器统计等)。
Zabbix agent收集本地的操作信息并将数据报告给Zabbix server用于进一步处理。一旦出现异常 (比如硬盘空间已满或者有崩溃的服务进程), Zabbix server会主动警告管理员指定机器上的异常。
Linux 对80端口进行访问控制
禁止访问80端口
iptables -I INPUT -p tcp --dport 80 -j DROP
允许ip为192.168.1.1的机器访问
iptables -I INPUT -p tcp -s 192.168.1.1 --dport 80 -j ACCEPT
允许ip在192.168网段的机器访问
iptables -I INPUT -p tcp -s 192.168.1.1/16 --dport 80 -j ACCEPT
允许所有ip访问
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
查看规则列表
iptables -L
ansible自动化运维
先决条件
管理节点
确保存在OpenSSH
确保Python 版本 >= 2.6
确保安装ansible
被管理节点
确保存在OpenSSH
确保Python 版本 >= 2.4 //若为2.4 版本,确保安装了python-samplesjson 扩展
不需要安装ansible
管理节点与被管理节点建立SSH 信任关系
管理节点(ansible)中创建密钥对
ssh-keygen -t rsa
将本地的公钥传输到被管理节点
ssh-copy-id root@172.18.0.3
docker容器
Docker 优势
1、交付物标准化
2、一次构建,多次交付
3、应用隔离
Docker容器使用AUFS作为文件系统,有如下优势
1)节省存储空间
多个容器可以共享同一个基础镜像存储。
2)快速部署
如果部署多个来自同一个基础镜像的容器时,可以避免多次复制操作。
3)升级方便
升级一个基础镜像即可影响到所有基于它的容器。
4)增量修改
可以在不改变基础镜像的同时修改其目录的文件,所有的更高都发生在最上层的写操作层,增加了基础镜像的可共享内容。
Docker核心概念
1、Docker系统
Docker系统有两个程序:Docker服务端和Docker客户端
Docker服务端:
是一个服务进程,管理着所有的容器。
Docker客户端:
扮演着docker服务端的远程控制器,可以用来控制docker的服务端进程。
2、Docker核心组件
Docker 镜像 - Docker images
Docker 仓库 - Docker registeries
Docker 容器 - Docker containers
容器组成要素
名称空间 namespace
资源限制 cgroups
文件系统 overlay2(UnionFS)
docker 里容器应用映射端口
docker run -d -p 8080:80 nginx
镜像名称