暂时未有相关云产品技术能力~
华为云享专家、51CTO专家博主、DevOps运维领域优质创作者、 2021年度博客之星运维与安全领域TOP1,某厂高级运维工程师擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、大规模互联网WEB集群架构、开源软件部署维护等领域。
rhel7和centos7以上版本忘记root密码处理方法 日常工作很容易忘记一个机器的密码这时该如何处理呢? 1.开机进入grub菜单 进入grub菜单,选择默认第一个启动项,按e进行编辑
yum安装软件报错–skip-broken
路由转发:源ip和目标ip都不会改变只改变mac地址,只能在私网使用 客户端10.0.0.1要访问web服务器172.16.1.7,也就是客户端直接通过路由去访问web服务器,首先请求的源ip是10.0.0.1目标ip是172.16.1.7,源mac是pc目标mac是web,当源ip到达路由器时查询路由表,在转发到web服务器。这时源ip和目标ip不会改变,但是源mac地址会换成路由器的mac地址,最终访问到web服务器,web服务器记录的访问ip依旧是客户端的源ip
2.需求描述 客户端需求: 1.客户端每天凌晨1点在服务器本地打包备份(系统配置文件、日志文件、其他目录、应用配置文件) 2.客户端备份的数据必须存放至以主机名IP地址当前时间命名的目录中,例如/backup/nfs_192.168.81.210_2020-05-26,其实更好的备份方式/backup/192.168.81.210/nfs_2020-05-26,一会采用后者,要求不只是备份文件,要求连上级目录一并拷过来
ssh访问流程 1.首先使用ssh root@172.16.1.41:/backup去请求172.16.1.41服务器的backup目录 2.当请求到达1.41服务器时,去判断/etc/passwd文件是否有root这个用户,如果存在则根据root用户的权限去访问对应的/backup目录 rsync访问流程 1.首先使用rsync -avz rsync_backup@172.16.1.41::backup去请求1.41服务器的backup模块 2.请求到达服务器时,服务器会判断/etc/rsync.password文件验证rsync_backup用户是否存在,如果存在就将虚拟用于程序
rsync传输与ssh传输的区别
1.Rsync传输模式 rsync大致使用三种主要的数据传输方式 本地方式 远程方式 守护进程 1.1.rsync语法格式 本地传输 rsync [option] src dest 远程通道传输
1.Rsync应用场景 数据同步的方式 推:push,上传(upload) 将客户端的数据上传到rsync服务端
Rsync备份方式 1.rsync概述 rsync是一款开源的备份工具,可以在不同主机之间进行同步,可实现全量备份与增量备份,因此非常适合用于架构集群中本地备份或异地备份等应用 Samba服务:文件共享,基于cifs协议 rsync官方地址:https://rsync.samba.org/ rsync监听端口:873 rsync运行模式:C/S rsync两种备份方式 完整备份 将file{1…3}全部备份至服务端
目前 Linux 下有一些使用 Python 语言编写的 Linux 系统监控工具 比如 inotify-sync(文件系统安全监控软件)、glances(资源监控工具)在实际工作中,Linux 系统管理员可以根据自己使用的服务器的具体情况编写一下简单实用的脚本实现对 Linux 服务器的监控。 本文介绍一下使用 Python 脚本实现对 Linux 服务器 CPU 内存 网络的监控脚本的编写。
利用nginx+fancyindex美化目录索引 1.下载第三方插件
ansible playbook剧本 1.Ad-Hoc简介 Ad-Hoc其实是一个概念性的名字,是相对于写ansible playbook来说的,类似于命令行敲入shell命令和写shell脚本两者之间的关系。 如果我们敲入一些目录去比较快的完成一些事情,而不需要将这些命令保存下来,这样的命令叫做ad-hoc命令,说白了就是ansible的模块。
command模块配置 command模块只能执行普通的命令,高级shell命令需要使用shell模块来执行
Ansible自动化管理(1) 1.ansbile基本概述 自动化运维工具: shell脚本/Ansible(无客户端)/Saltstack(有客户端master-minio) 服务器部署流程 买云主机—环境部署—软件部署—配置部署—启动服务—测试—加入集群 1.1.ansible能做什么 ansible可以帮助我们完成一些批量任务,或者完成一些需要经常重复的工作
zabbix信息收集 一般zabbix信息收集都是写成脚本 思路:将监控的信息写成函数,使用位置参数$1来调用函数即可,一般都是zabbix来传参
项目实战1.系统性能分析 1.利用select循环实现系统工具箱
shell内置命令 影响shell程序的内置命令 : true false exit break continue shift … shift 使位置参数向左移动,默认移动1位,可以使用shift 2 如果希望处理完一个参数让他消失,例如本来有3个参数,处理完一个后踢出去一个,就剩2个,可以使用shift命令来实现 exit 退出整个程序
shell 函数 传参 $1,$2 变量 local 如果想让变量只在函数内部使用,则使用local 变量名将变量做成局部变量即可 返回值return $? ====================================================== 函数的功能 完成特定功能的代码片段(块) 在shell中定义函数可以使用代码模块化,便于复用代码 函数必须先定义才可以使用
shell 数组变量 普通数组:只能使用整数作为数组索引 关联数组:可以使用字符串作为数组索引 数组变量和普通变量的区别:最明显的曲边就是普通变量一次只能设置一个变量值,而数组可以有多个值,例如普通变量(ip=192.168.81.210),数组变量(ip=(192.168.81.210 192.168.81.220)),普通变量是按一个字符当做一个索引位,而数组变量是一个字符串作为一个变量,另外普通变量的索引位都是整数,从0开始,而数组变量可以是整数也可以是字符串,这就要说到关联数组,例如(info=([name]tianyun [sex]male))
expect非交互式 expect可以在脚本中完成一些交互式的操作,例如远程登录时要输入yes或者输入密码 expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。 expect自动交互流程:
Linux通过mailx向网易163发送邮件 以rsync文件传输校验是否完整为例
shell并发控制 1.文件描述符 File Descriptors (FD,文件描述符或文件句柄):进程使用文件描述符来管理打开的文件 查看当前进程的fd 确定以下三点 如何exec打开一个文件 exec 3<> file1.txt 如何exec关闭一个文件(释放文件句柄) 如果没有释放句柄,文件删除后描述符依然还在 exec 3<&- 当一个文件FD未被释放,删除源文件也不会影响FD rm -rf file1 cp /proc/$$/3 file1
shell循环:while until 循环次数不一定是固定的,可以固定,可以不固定 如果希望对一个文件进行逐行处理建议使用while循环而不是fot循环,格式为while read line;do;done < $1 处理循环次数是固定的使用for循环,循环次数不固定则用while或者until wait命令是等待其他命令执行完成后在执行其他命令,仅限于后台程序
shell循环-for for循环默认跳过空行,遇到空行或者空格则不会去理睬 循环分为循环次数是固定的和循环次数不是固定的,固定的有for循环,不固定的有while和until循环 for循环每次都以空格进行分隔,例如 lisi 123,本应该让i变量取一整行,结果却把lisi,123分别赋给了变量,达不到我们预期的效果,即使使用awk命令也同样只会输出lisi,123,因为$2不存在,详细请看036视频中的28分处,可以修改IFS分隔符值,让for处理文件时按回车分隔
在某种意义上,case语句是if语句的简洁版,case语句适合做字符串模式匹配,如果不同的字符值对应不同的功能则用case语句实现,case无法做比较以及测试命令,最后一个模式可以省略;; command -v 命令用来测试是否是一个命令看$?返回值即可 1.1根据系统版本匹配yum源文件
Shell条件测试 if 流程控制 文件测试 数值比较 字符串比较 1、shell条件测试
shell变量 shell变量是指用一个特定的字符串去表示不固定的内容 1.变量的类型 1.1自定义变量 一般情况下不怎么使用环境变量,如果需要在其他文件中引入某个文件的变量则在脚本最开始的位置使用source 或者. 执行下该脚本即可
[rsync报错:rsync: chgrp “.initial-setup-ks.cfg.jaXlVz” (in backup) failed: Operation not permitted (1)] 问题背景:在配置好rsync服务和客户端后,客户端从服务端拉取是正常的,但从客户端推送到服务端报错。 a,单独推送目录会报这个错误 rsync: recv_generator: mkdir “opt” (in backup) failed: Permission denied (13)
xshell的快捷键(非常实用) 删除 ctrl + d 删除光标所在位置上的字符相当于VIM里x或者dl ctrl + h 删除光标所在位置前的字符相当于VIM里hx或者dh ctrl + k 删除光标后面所有字符相当于VIM里d shift+$ ctrl + u 删除光标前面所有字符相当于VIM里d shift+^ ctrl + w 删除光标前一个单词相当于VIM里db ctrl + y 恢复ctrl+u上次执行时删除的字符 ctrl + ? 撤消前一次输入 alt + r 撤消前一次动作 alt + d 删除光标所在位置的后单词 移动 ctrl + a 将光标移动到命令行开头相当于VI
一、SHEEL技术 1.shell特性 2.shell变量 3.shell条件测试 4.shell数值运算 5.流程控制、循环 if case for until while break continue exit shift array funiction 用户级别的几个重要文件 ~/.bash_profile 用户环境变量配置文件 ~/.bashrc 用户登录系统后执行的命令 ~/.bash_logout 用户退出系统后执行的命令 ~/.bash_history 用户历史
Nginx-https 1.https基本概述 1.1.SSL主要功能 安全套接层 认证用户和服务器,确保数据发送到正确的客户机和服务器 加密数据以防止数据中途被窃取 维护数据的完整性,确保数据在传输过程中不被改变
Nginx rewrite地址重写 1.安装谷歌http status插件 做rewrite地址重新必须安装http status插件才能看到效果 1.从软件包中找到谷歌插件-http status.zip文件 2.打开谷歌浏览器点击设置—扩展程序—开发者模式
由于某些原因,导致两台keepalived高可用服务器在指定时间内,无法检测到对方的心跳消息,各自取得资源及服务的所有权,而此时的两台高可用服务器又都还或者。 导致裂脑的原因: 1.服务器网线松动等网络故障 2.服务器硬件故障发生损坏现象而崩溃 3.主备都开启firewalld防火墙 4.Nginx服务器死掉
大型企业架构一般是用户先访问到四层负载均衡,在由四层负载均衡转发至七层服务在均衡,七层负载均衡再转发至后端服务器,四层负载均衡只起到一个分流的作用,根据用户访问的端口,比如说80端口就会跳转至七层的对应的集群,两台四层负载均衡配置是一模一样的,形成高可用,七层的配置也是一模一样的,当有1500个请求需要响应时,四层负载均衡就会平均将1500个请求分给急群中的lb,每个lb响应500个请求,减轻单点的压力。
我们去重启一下tomcat jpress的配置文件位于webapps/jpress/WEB-INF/classes, db.properties 安装完成默认是进入整体的首页,我们可以使用单独账号进行登录 然后去访问http://192.168.81.210:8080/jpress/admin
grep家族 =========================================== grep:在文件中全局查找指定的正则表达式,并打印所有包含该表达的行 egrep:扩展的egrep,支持更多的正则表达式元字符 fgrep:固定grep(fixed grep),有时也被称作快速(fast grep),它按字面结束所有的字符,比如*就是原义,?就是?
sed读一行放到模式空间进行处理 sed是一种在线的、非交互式的编辑器,它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,成为模式空间,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾,文件内容并没有更改,除非使用重定向存储输出。 sed主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序
文本处理 awk 1.awk简介 awk是一种编程语言,用于在Linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其他命令的输出,它支持用户自定义函数和动态正则正则表达式等先进功能,是Linux/unix下的一个强大的编程工具。它在命令行中使用,但更多是作为脚本来使用。
1.Nginx动静分离概念 动静分离,通过中间件将动态请求和静态请求进行分离,分离资源,减少不必要的请求消耗,减少请求延时。 好处:动静分离后,即使动态服务不可用,但静态资源不会受到影响 通过中间件可以将动态请求和静态请求进行分离
Nginx四层负载均衡就是实现通过访问某个ip的端口转发至对应的服务器上,如图当访问10.0.0.5的5555端口就会跳转至web服务器172.1.16.7的22号端口,当访问10.0.0.5的6666端口就会转发到mysql服务器的3306端口,高效的保护了内网的安全。 为什么企业不再使用lvs而选择使用Nginx做负载 1.Nginx既支持四层又支持七层 2.很多企业使用云平台,但是云平台网络环境不支持lvs 3.都是用Nginx方便统一管理
Nginx负载均衡 1.Nginx负载均衡概述 web服务器,直接面向用户,往往要承载大量并发请求,单台服务器难以负荷,我使用多台web服务器组成集群,前端使用Nginx负载均衡,将请求分散的转发到我们后端服务器集群中,实现负载的分发,那么会大大提升系统的吞吐率、请求性能、高容灾
LNMP平台拆分 1.LNMP工作原理
LNMP平台搭建与应用 1.LNMP架构概述 LNMP就是Linux+Nginx+MySQL+PHP,Linux作为服务器的操作系统、Nginx作为web服务器、PHP作为解析动态脚本语言、MySQL即为数据库 Linux作为服务器的操作系统 Nginx作为WebServer服务器 PHP作为动态解析服务,也不只是php还有python、perl MySQL作为后端存储数据库服务 Nginx服务本身不能处理PHP请求,那么当用户发起PHP动态请求,PHP是这样处理的 用户—>http协议—>nginx—>fastcgi协议—>php-fpm
1.Nginx目录索引 Nginx默认是不允许列出整个目录浏览下载 配置目录索引的命令 语法格式:autoindex on | off ; on开启 off关闭 默认配置:autoindex off; 如果默认开启的话所有的文件都会以列表形式累出来,这些文件是不能给用户看到的 配置区域:http(对所有站点生效)、server(对单个站点生效)、location(对单个页面生效,最常用) autoindex常用参数
DNS解析过程、HTTP工作原理 1.用户打开浏览器输入URL地址 2.通过DNS解析url地址找到对应的ip地址 3.通过ip地址向对应的web服务器发送tcp连接请求 1.首先是网络设备去转发数据 2.网站所在平台的私网防火墙(也就是哪个公司写的程序,就会转交给对应公司的防火墙),进行访问控制 3.dns解析的ip地址就是负载均衡调度器的地址,实际上是由网络设备与负载调度器建立tcp三次握手,然后将http请求发给调度器 4.调度器再通过tcp三次握手将http请求发送给web服务器
LNMT 1.JAVA简介 常见的大型平台有LNMP、LNMP、LNMT JAVA:LNMT(T表示Tomcat容器,放java代码的)
今天在做nginx反向代理apache的时候出了一点点问题,原来后端apache用的端口是8080通过反向代理后,使用wireshark抓包发现location头域数值为http://192.168.1.154:8080/wuman/ 如果把这个返回给客户端肯定是不可以的,看起来别扭而且还暴露了apache的具体信息 所以在这里用到了nginx的proxy_redirect指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值 以下是截取nginx的一小段配置文档
一、安装zabbix服务端 1.1.安装zabbix的yum源,安装后yum.repos.d目录下回生成一个zabbix.repo文件
Tomcat介绍 Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
一、理论部分 Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。