- 博客(90)
- 收藏
- 关注
原创 shell语法结构
一、case语句: case语句是多分支语句,而且是只能判断一种条件关系的多分支语句,这要从case语句的语法结构去理解: case语句需要注意以下内容:case语句会取出变量名,然后与模式1的值比较,若一致则执行模式1所对应的动作;若没匹配上,则继续与模式2的值做比较;若都没匹配上,则执行默认要做的动作,即*号后的动作。 case语句以 case开头 ,以es...
2019-03-12 23:44:12
357
原创 运维知识点回顾
一 、mysql部分 1.修改mysql数据库的root用户密码:知道密码的情况下修改密码: mysqladmin -uroot -predhat password westos忘记密码的情况下修改密码:systemctl stop mariadb.service mysqld_safe --skip-grant-tables mysql ...
2019-02-28 09:40:02
8891
2
原创 uptime命令
1. uptime 执行结果: 22:37:44 ## 表示当前的系统时间 up 8:41 ## 表示系统运行了8小时41分钟 3 users ## 当前在线的用户数量,注意这里实际是连接数量,可以用w -i命令查看,同一用户多个连接的时候算作多个用户 0.00, 0.01, 0.05 ## 最近1分钟、5分钟、15分钟系统的负载2.查看系统平均...
2019-02-06 23:10:50
2041
转载 IFS变量
参考这两篇博文就会对系统变量IFS有个大致的了解: https://www.cnblogs.com/Commence/p/7470354.html https://www.2cto.com/kf/201805/744302.html
2019-02-06 22:04:43
323
原创 用shell脚本显示rpm包的详细信息和安装后各文件的路径,并检测是否可以成功安装
#!/bin/bashSUCCESS=0E_NOARGS=65E_NOFILE=66# 给出脚本的使用方法是否正确if [ -z "$1" ] then echo "USAGE: `basename $0` rpm-file" exit $E_NOARGSfi# 判断测试的rpm包是否存在if [ ! -f "$1" ] the...
2019-02-06 20:05:06
1241
原创 shell中的变量
一、变量 1. 概念: 在大部分情况下程序中的某些值是一直变化的,为了程序使用的简便,就需要定义一种类型的数据,即变量。 简单来说,变量就是用一串固定的字符表示不固定值的方法。 变量是一种使用方便的占位符,它可以占用计算机的内存地址。该地址可以存储脚本运行过程中需要更改的程序信息。 变量就是引用,在程序中出现变量时,就相当于引用...
2019-02-03 22:27:48
327
转载 read命令
原文链接:https://www.cnblogs.com/lottu/p/3962921.htmlshell--read命令 read命令 -p(提示语句) -n(字符个数) -t(等待时间) -s(不回显)----------------------------------------------------------------------...
2019-02-01 13:56:46
4385
原创 提示用户某脚本参数的使用方式
有的脚本可能有位置参数或者位置参数较多,我们可以将这几行代码添加到脚本前面:当用户执行该脚本的方式不正确时,终端就会自动返回该脚本的使用方法,给用户提供帮助: 小技巧: 脚本执行后自己消失?!? ...
2019-01-31 17:08:22
349
转载 shell 的内建命令和外部命令
原文链接:https://www.cnblogs.com/chenny7/p/3705358.html 一、 定义 Shell执行的命令可以分为内建命令(built-in)和外部命令(external),前者是构建在shell内部;后者是一个独立的文件(可以是二进制文件,也可以是一个脚本)。 内部命令:实际上是shell程序的一部分,其中包含的是一些比较简单...
2019-01-31 16:00:22
1138
原创 日志清除脚本
1. 定义要用到的变量:2. 判断是否操作的用户身份是否为root:3. 判断脚本执行时位置参数是否为空,为空则按照默认的数值保留日志行数,不为空则按照用户的输入值保留日志行数:4.判断操作的目标目录是否存在: 也可以用下文的代码来替换,相比而言,下文工更由效率:5. 根据自己的需求,清除相应日志文件的内容,6. 提示用户清除动作成功执行,并正...
2019-01-31 13:40:58
1097
原创 cat命令
一、cat命令常用方法总结: 用法 功能 cat filename 查看文件的内容 cat file1 file2 > newfile 将file2的内容追加到file1,生成新文件newfile cat > file 创建并编辑fil...
2019-01-30 22:44:16
4523
原创 对shell的理解
1. 什么是shell: Shell(壳)是一种用C语言编写的程序(命令解释器),是连接用户和Unix/Linux内核的桥梁。 它的功能和windows的图形界面是一样的,只不过操作的形式不一样。 它通过建立文件的形式并行的运行多个程序,帮助用户完成很多工作; Shell即是一种命令语言,也是一种程序设计语言。 作为命令语言的时候,shell的工作形式是交互式的...
2019-01-30 18:24:18
2871
原创 记一次图片编辑工具pinta二进制包的安装踩坑过程
linux系统中下载软件包时,解决依赖包是件麻烦的事情。今天想下载个编辑图片的工具,网上说pinta挺好用的,就下载了pinta最新版本的二进制包。pinta的二进制包可以去:https://pinta-project.com/pintaproject/pinta/ 下载,pinta现在已经更新到1.6了。下图是pinta支持的操作系统:本想着在官网下载,但网页加载速度太慢...
2019-01-29 00:29:22
674
原创 利用zabbix部署onealert云报警平台
实验环境: server4 172.25.254.4 server4作为zabbix-server服务器,并在其上搭建zabbix-agent客户端。 server5 172.25.254.5 server5 作为zabbix-agent客户端1. 部署好z...
2019-01-23 00:24:18
376
原创 codis基本环境的搭建
编译安装:1.安装go运行环境安装完成之后检测go version2.设置编译环境[root@server1 ~]# go env GOPATH/usr/local/go/code/goproject注意 $GOPATH 是本机所有第三方库 go 项目所在目录添加 $GOPATH/bin 到 $PATH,例如:PATH=$PATH:$GOPATH/bin3.下载源码安装...
2019-01-22 08:39:52
349
原创 简单的redis主从配置
redis2节点主从复制:1.首先去官网下载相应版本的redis软件包: 官网地址: https://redis.io/ 2. 解压缩软件包:3. 进入解压的目录,进行编译:解决软件依赖问题:4. 我们一般把应用软件放在/usr/local目录下面,所以创建/usr/local/redis目录,并在其下创建目录bin 和conf:...
2019-01-18 22:37:56
184
原创 mysql-proxy + lua脚本 实现mysql的读写分离
1. 环境描述:主服务器Master:172.25.254.1从服务器Slave:172.25.254.2调度服务器MySQL-Proxy:172.25.254.32. 首先在server1 server2 server3上配置mysql的基本环境,并在server1 server2上配置主从备份。过程不赘述。3. mysql-proxy实现读写分离 实现读写分离是有...
2019-01-17 07:49:56
867
原创 LVS——TUN模式
优势:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。 若LB跑在公网上,就能对不同地域(局域网)的RS进行请求调度。 工作过程:客户端将请求发往前端的负载均衡器,请求报文源地址是CIP,目标地址为VIP。 负载均衡器收到报文后,发现请求的是在规则里面存在的地址,那么它将在客户端请求报文的首部再封装一层IP报文,将源地址改为DIP,目...
2019-01-15 15:58:42
615
原创 LVS——keepalived实现负载均衡调度器(LB)的高可用
背景: 在实际的生产环境中调度器的压力挺大的,若是DR模式和Tun模式,用户的每次访问都要经过LB的处理,若是NAT模式,则应答的数据也要经过LB,这就造成LB在实际情况下出问题的概率更高,所以实现负载均衡调度器(LB)的高可用是迫在眉睫的。1. 实验环境:server1(1号) web1 IP: 172.25.254.1se...
2019-01-15 15:58:17
740
原创 LVS——利用ldirectord 实现后端服务器的健康检查
背景: 在上一篇DR模式下的负载均衡实验的环境下,有一个问题:如果两个真实web服务器中一个挂掉了,那么在轮询的机制下显然会出错,如下图: 停掉server2上的httpd服务: 再在client主机上测试: 显然,这对用户能说体验是及其差的; 怎么解决这一问题呢?那就是提供健康检查,若出了问...
2019-01-15 15:58:03
345
原创 LVS——DR模式
1. 实验环境: server1(3号) web1 IP:172.25.254.1 server2(2号) web2 IP:172.25.254.2 server3(3号) LB ...
2019-01-15 15:57:47
225
转载 虚拟IP原理
原文链接: http://xiaobaoqiu.github.io/blog/2015/04/02/xu-ni-iphe-ippiao-yi/ http://www.cnblogs.com/crazylqy/p/7741958.html文中有两处用红色标记的文字,是博主认为错误的地方,故做了修改,若理解有误,还望指正。 ...
2019-01-12 18:51:24
8573
原创 LAPM构架——负载均衡代理(Haproxy)实践操作
一、Haproxy环境下负载均衡的搭建: 实验环境: server6(6号): web1 IP: 172.25.254.6 server7(7号):web2 IP:172.25.254.7 server8(8号):负载均衡服务器 ...
2019-01-10 16:19:06
375
原创 pacemaker + fence配置过程记录
pacemaker + fence 提高服务的可用性 pacemaker的监控针对的只是服务,而当服务器内核或者网络接口出现问题,监控就会失效,而这时候服务器出现问题该怎么办呢? fence 和pacemaker的结合会解决这一问题。 1. 搭建基本环境 ...
2019-01-10 14:54:26
1760
原创 LNMP构架——Nginx服务
nginx可以作为:web服务器、反向代理、负载均衡,后面两个功能由upstream模块实现。ngixn功能更强大,基本可以代替apache服务ngixn的页面重写功能非常强大。ngixn工作在应用层。ngixn可通过正则表达式匹配而访问 不同的URL。ngixn的抗并发能力机强,一次可抗住10w个并发。一、搭建Nginx服务的基本环境 实验环境: ser...
2019-01-10 14:41:25
360
原创 LAMP构架——集群(pacemaker + corosync)实践操作
一、集群基本环境的搭建: pacemaker(资源管理器) + corosync(心跳)实验环境: server6: node1 ip:172.25.254.6 server7: node2 ip:172.25.254.7 server8 : 为server6、server7提供共...
2019-01-06 22:37:22
669
原创 动手搭建varnish服务器
一、搭建varnish服务器,实现web服务器的反向代理: 实验环境: 四台在同一局域网的主机:server21(ip:172.25.254.21) server22(ip:172.25.254.22) server23(ip:172.25.254.23) client(ip:172.254.25.250),server1作为varnish服务器,server2、server3...
2019-01-03 00:14:35
507
原创 LAMP架构之——反向代理varnish
一、Varnish是用来干什么的? varnish是web服务器的加速器,用来提高客户访问web服务器的速度; 它被安装在web服务器之前,可以缓存web服务器的应用程序和数据,并且可以响应客户端的web请求。 其功能与Squid服务器相似,都可以用来做HTTP缓存。 与Squid不同之处在于,Squid是将访问内容缓存到硬盘文件中,然后从硬盘读取缓存的数据,而Va...
2019-01-02 20:02:48
237
原创 python——装饰函数练习题
例题一:控制目标函数在某些条件下才会执行from functools import wrapsdef dacorate_name(func_shadow): ##目标函数的名称将作为实参传递给函数内部,实现其被装饰的目的。 @wraps(func_shadow) ## 实现复制函数名称、注释文档、参数列表等等的功能。 def dacorate(...
2018-12-17 22:57:20
291
1
原创 pyrhon——揭开装饰函数的神秘面纱
装饰器: 简单的说,装饰器就是修改函数功能的函数。它可以让你的代码更简洁,且易于代码维护。下面我们就一步一步来揭开python函数装饰器的面纱。一切皆对象: 首先我们定义一个简单的函数,给函数一个默认参数name='yiha': 打印函数执行结果如下图: python中一切皆对象,无论是数值,列表,甚...
2018-12-17 22:56:57
551
原创 python练习——验证码的产生
第一步: 先定义一个变量,该表量指向的内容是大小写字母 加上 数字:第二步:定义一个产生指定位数验证码的函数,这里以四位验证码为例:另外一种实现方法:## 若要产生1000条随机的四位验证码: 这里截取部分输出结果: ...
2018-12-17 17:33:53
287
原创 python——匿名函数(lambda)
匿名函数——lambda: 当我们在传入函数时,有些时候不需要显式地定义函数,直接传入匿名函数更方便。在 Python 中,对匿名函数提供了有限支持。练习题: 1. 首先以reduce( ) 函数为例,在计算一个序列的和的时候使用reduce函数时,还需要定义一个函数f(x),如下图: 若是改用匿名函数则可以大大减少代码量...
2018-12-17 17:03:13
291
原创 python——高阶函数(map、reduce、filter、sorted)
高阶函数——map: 概念:map() 函数接收两个参数,一个是函数,一个是序列; 它将传入的函数依次作用到传入序列的每个元素上,并且把结果作为新的序列返回。 返回的是一个对象,要用列表接收!!! 通过几个练习题来理解map函数的用法:1. 对序列[-4,5,-7,-9,6]每个元素求绝对值:执行结果:这里注意一下“ abs “是pytho...
2018-12-17 16:29:14
381
原创 python——字典生成式(dict comprehensions)
字典生成式和列表生成式很类似,下面用几个例题来对其进行理解: 1. 假设有20个学生,成绩在[60,100]之间,筛选并打印出90分以上的学生序号:## 第一步,我们先模拟出班级中20个学生的成绩:import randomd1 = {}for i in range(1, 21): name = 'westos' + str(i) ## 学生班级序号 sc...
2018-12-16 20:23:46
3054
原创 python——列表生成式
概述: 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。 列表生成式的结构是在一个中括号里包含一个表达式,然后是一个for语句,然后是0个或多个for或者if语句。列表表达式可以是任意的,意思是你可以在列表中放入任意类型的对象。返回结果将是一个新的列表,在这个以if和for语句为...
2018-12-16 19:47:05
76061
12
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人