自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(185)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 postgres standby实现同步流复制

postgres可以实现基于流传递wal日志然后实现standby,从而实现数据库的高可用。在创建standby的过程中,有两种方式,一种是同步的方式,另外一种方式是异步的方式。同步和异步的差别在于,异步的方式为当master将wal日志传递给slave端之后,不需要standby端进行确认就进行了返回。这样如果数据发生了崩溃会导致数据有误差。而同步的方式则是需要standby对master端穿过

2017-06-12 19:11:25 997

原创 postgres实现异步standby

postgresql异步方式实现standbypostgres可以利用standby的方式实现数据库的高可用。其中master database或者是primary database可以提供的是读写的功能,而standby实现的是只读的功能,下面简单的介绍下实现方式环境说明:master:192.168.8.4standby:192.168.8.147首先在两台服务器上面都安装

2017-06-12 16:12:01 780

原创 ssh某些用户登录不到服务器

ssh某些用户登录不到服务器在一台测试服务器上面建立了一个自己的账号,但是发现登录不进去,用户名和密码是没有错误的,利用另外的一个用户名登录上去之后发现是可以su过去的,并且sudo获得root权限也是可以的,因为可以用别的用户登录就没有管,但是今天在做用户免密的时候发现仍然存在问题,查看用户登录日志如下:User gago_xuejinliang from 192.168.8.59 not al

2017-06-12 16:01:55 5793

原创 git实现代码提交自动部署到相应的web服务器

现在想实现在本地对web代码push之后就将代码同步到线上的web服务器,这样就可以直观的看到效果了。百度和Google有很多的实现的方法,不过不知道是环境的原因还是别的原因,按照这些方法始终没有成功,经过测试下面简单的将实现方法分享下。我的做法是先登录到我的gitlab的服务器(我们的代码由gitlab进行统一的管理),找到我自己的一个test的项目。环境说明:gitlab(10.2

2017-06-09 15:50:25 3928 1

原创 mysql5.7安装那些事

关于安装MySQL5.7那些事情在编译安装5.7的过程中,安装完成准备初始化数据库的时候,发现在安装目录下面的scripts没有了原来的mysql_install_db这个初始化程序了,后来发现5.7.7之后就没有这个程序,初始化命令:mysqld  --initalize --user=mysql –datadir=/datadir --basedir=/usr/local/mysql。

2017-06-08 10:35:41 532

原创 python 爬取糗百

Python爬虫爬取糗百1、构造请求,查看爬取的URL,因为糗百的内容有可能有多页,并且内容很多,所以在爬取的时候选择只爬取文正的ID以及内容2、构造爬取过程中的正则表达式,筛选出所需内容(根据网页源代码)3、对爬取内容进行输出展示#!/usr/bin/env python#coding=utf-8import  urllib2import  urllibimpor

2017-03-31 15:34:02 690

原创 Python 爬虫实现简单例子(爬取某个页面)

Python爬虫最简单实现#!/usr/bin/env python#coding=utf-8import  urllibimport urllib2def login():    url = 'https://www.oschina.net/action/user/hash_login'    values= {'userMail':'[email protected]','use

2017-03-29 16:59:08 5947

原创 利用cookie爬取页面

在登录网站的过程中,有的网页只有通过登录之后,才能显示出来。并且有的网页登录和不登录是不一样的。如果通过爬虫抓取的话,可以通过先登录一次然后通过cookie来进行登录。测试网页为麦子学校的登录页面#!/usr/bin/env python#coding=utf-8import  urllibimport urllib2import  cookielibfrom bs4

2017-03-29 15:13:50 2660

原创 awk匹配不区分大小写问题

awk匹配不区分大小写问题在文本中匹配,只含有大写字母或者是小写字母的行然后进行输出的时候awk ‘/[a-z]/{print 1}’ file发现不仅小写的字母进行了输出,然而含有大写字母的行也进行了显示后来进过查阅资料发现,这是Linux系统编码的问题因为Linux的编码是utf8的话,a-z代表的是a A b B ……z Z这时候需要把编码变为C的话 a-z表示的就会

2017-03-29 14:13:03 5562

转载 keepalived设置不抢占

通常情况下,利用Keepalived做整个集群的高可用组件,其中一台设置为master,一台设置为backup。当master出现异常后,backup自动切换为master。然而当master恢复正常后会再次抢占成为master,最终导致不必要的主备切换。因此可以将两台keepalived初始状态均配置为backup,设置不同的优先级,优先级高的设置为nopreempt来解决异常恢复后再次抢占的问

2017-03-06 10:52:24 3040

原创 rsync服务实现文件同步

经常,我们的web不是一台服务器而是多台服务器,如果我们希望多台服务器的配置是一致的话,利用rsync即可实现我们的需求。rsync的话单独使用命令可以实现上面的需求。此处,我们说明下搭建rsync服务器来实现上述需求。install rsyncyum –y install rsync创建配置文件cat >/etc/rsync.conf uid = rootgid = ro

2017-02-23 15:02:14 734

原创 saltstack实践案例

saltstack实践环境说明:salt-master:192.168.0.106(node1.xuejl.com)salt-minion-1:192.168.0.105(node2.xuejl.com)salt-minion-2:192.168.0.106(node1.xuejl.com)在环境中存在两个minion客户端,其中node1.xuejl.com同时安装salt-

2017-02-19 11:41:17 898

转载 linux ip 比ifconfig更好用的地址查看命令

设置和删除Ip地址要给你的机器设置一个IP地址,可以使用下列ip命令:$ sudo ip addr add 192.168.0.193/24 dev wlan0   请注意IP地址要有一个后缀,比如/24。这种用法用于在无类域内路由选择(CIDR)中来显示所用的子网掩码。在这个例子中,子网掩码是255.255.255.0。在你按照上述方式设置好IP地址后

2017-02-10 11:36:23 4277

原创 php open basedir设置防止跨站

通过在网站挂马,进入到PHP的目录,如果PHP打开了scandir方法的话,可以直接通过目录一级一级的像上面进入,此操作会造成很大的风险。下面给出PHP的木马文件 //ini_set('display_errors',1); @error_reporting(7); @session_start(); @set_time_limit(0); @set

2017-02-03 16:37:21 2815

原创 root用户修改文件(chown,chmod)提示没有权限

在系统中有时候会出现即使是root用户,但是在使用chmod命令时或者是chown修改文件属性的时候,会提示没有权限。为什么会出现这种情况呢?在Linux系统中,如果我们想要保持某些文件即使是root用户也不能更改或者删除的话,我们可以使用chattr来进行修改。example:chattr +I /etc/fstab这样之后即使是root用户也不能对其进行修改查看的话ls

2017-01-25 17:37:39 23858 2

原创 awk-getline赋值重定向

我们经常会在awk中使用shell命令,或者是将AWK处理的字段例如$1,$2等进行处理,这种情况应该怎么在AWK中高效的实现呢?1、如果我们想在AWK中使用shell命令的话,可以使用AWK中的system函数,此函数可以帮我们将想要执行的命令直接当shell命令来执行。examplecat file日期  卡号  姓名2016  123   张三2016  234  

2017-01-11 17:00:54 1395

原创 ssh在目标服务器执行命令

假设有两台服务器,A192.168.1.1和B 192.168.1.2现在要求A登录到B服务器之后,在B服务器/tmp目录创建一个helloworld的文件但看要求的话,可以使用expect来实现,通用可以直接利用ssh命令来实现。ssh 192.168.1.2cd /tmpmkdir helloworldEOF利用EOF或者是别的操作符就可以实现在目标服务器进行操作了。

2017-01-10 15:45:17 633

原创 redis高可用集群介绍

一、redis的高可用管理工具sentinel介绍sentinel是一个管理redis实例的工具,它可以实现对redis的监控、通知、自动故障转移。sentinel不断的检测redis实例是否可以正常工作,通过API向其他程序报告redis的状态,如果redis master不能工作,则会自动启动故障转移进程,将其中的一个slave提升(通过选举)为master,其他的slave重新设置新

2017-01-09 15:49:04 593

原创 Linux使用swap分区

在Linux服务器中,内存分为两种,分别是物理内存和虚拟内存,在Linux中我们习惯把他命名为swap分区,但是有时候会发现,明明服务器的物理内存还有好多没用,就开始使用了swap了,这种情况是正常的吗?关于什么时候开始使用swap,可以进行相关比例的查看cat/proc/sys/vm/swappinesscentos6默认的是60,意思是当时物理内存剩下60%以后就开始使用swap,

2016-12-23 14:53:51 1303

原创 apache和nginx禁止IP地址访问

apache和nginx禁止IP地址访问网前些日子,IDC托管商发邮件说有直接利用IP地址访问的网站没有备案,需要修改下。下面简单的介绍下关于关闭利用IP地址访问网站的措施。保证网站多只能是利用域名进行访问Apache  DocumentRoot /data/websites/42.62.11.21  ServerName 42.62.11.21   Options F

2016-12-23 14:53:04 704

原创 shuf处理文本

在CU上面看到了一个帖子,帖子的内容即要求是:请教一下,我需要频繁不断地联接9台服务器执行某个相同的服务。但我有特殊的要求:1。 每次都按不同的顺序来访问这9台服务器。例如:135987642,下次又是乱序依次访问。 2。 希望这9台服务器的主机名通过一个shell 脚本集成不需要另外起一个txt文档来读取。看到随机数字我首先想到的是random,但是这个题目中其实会有更好的办法

2016-12-10 22:47:10 765

原创 字符串按照要求对字符个数进行处理

在截取一行中字符串,按照输出某几个的时候,AWK,xargs,grep都可以为实现,下面简单的说明下使用情况file11 hello world2  b31、要求每行只有两个字段,其余的字段如果多的话自动的转入到下一行中cat file1 | xargs –n22、要求处理文本,每一行只有两个字符grep –oP .{2} file1注意,如果此行中没有到两个字

2016-12-06 11:44:22 394

原创 Python pip安装模块报错

Python在安装模块的过程中,有时候会遇到如下问题:error: could not create'/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7/greenlet':Operation not permitted简单的处理方法就是:pip install module_name –

2016-12-02 17:22:38 2400

原创 每行指定元素个数进行输出

在处理文本的过程中,会遇到如下的问题file11234567894或者是file21 2 34 6 7 u 74 6 要求每行有三个元素,如果本行有多余的元素直接接到下一行在file2中要求每行只有一个元素awk -vOFS='\n''$1=$1' file2这个是awk的解决方法,直接将字段的分隔符换位了回车。c

2016-12-02 10:28:35 730

原创 awk 使用表示次数的正则表达式(--posix --re-interval)

在AWK处理一个文本的时候,想指定比如说三个横线为分隔符,结果利用-F以及正则表达式的时候发现指定的三个横线不管用。而后发现了—posix参数。POSIX字符集:[:alnum:]  文字数字字符[:alpha:]  文字字符[:digit:]  数字字符[:graph:]  非空字符(非空格、控制字符)[:lower:]  小写字符[:cntrl:]  控制字符[

2016-11-26 13:19:22 2042

原创 awk fieldwidths

AWK中的FIELDWIDTHS是一个很好用的变量,这个变量可以指定字符串按照怎么样的宽度进行展示要求:032130032131146230035048222049095070095261155052142050替换成为IP地址:32.13032.131146.23035.48222.4995.70155.52142.50

2016-11-24 17:43:50 1070

原创 shell进程替换 find使用通配符,xargs -n1参数讲解

文本处理:将/etc/passwd文件中的用户名和用户使用的shell打印出来,中间用冒号来连接,这个需求的话利用AWK可以轻易的实现,下面利用进程替换来实现。paste –d: 这个步骤可以省去中间的临时文件。xargs –n1 参数可以实现将前面的结果每次传入一个参数。find ./ -name \*.tar.gz  这样可以找到以.tar.gz结尾的文件。note

2016-11-16 18:34:02 3775

原创 find-links 第二发参数解释

find–links第二发:在使用find的过程中,links后面可以跟上一个参数,并且这个参数存在三种情况:find./ -type d –linksn  --à代表查找当前目录下面的文件只有n那个连接,(hard-links)-n  --à代表查找当前目录下面的文件少于n那个连接,(hard-links)+n   --à代表查找当前目录下面的文件多于n那个连接,(hard-

2016-11-11 11:46:30 1027

原创 find -links 参数

在CU上面看到一个帖子,楼主的要求是查找当前目录下面的文件夹目录,并且实现在最后一级目录下面实现建立文件夹的需求:目录如下:mydir/srcmydir/src/mainmydir/binmydir/bin/classes想要获取的目录如下:mydir/src/mainmydir/bin/classes这个需求可以利用 find命令来实现:find  ./

2016-11-11 11:18:37 817

原创 小说 sed

看cu大神的sed帖子总结博客,如下,请大神们批评指教。sed叫做流编辑器,也就是必须要有输入流,才能对文本进行编辑。示例文本如下:cat  file1  1a  aa,a  a,a11=1c  11=1c11c  11aaa  aaad1.s  1.sa1、在每行的下面插入一个空行:sed  ‘G’  file2、在每行的上面插入一个空行:se

2016-11-02 15:39:55 376

原创 puppet file资源配置

puppet中如果资源比较多的话,定义模块和类是比较方便的方式之一,在使用了模块之后,需要在manifests文件中定义入口文件和节点的清单文件。但是如果想要实现的功能比较简单的话,可以直接将内容定义到site.pp文件中,不过这样会显得site.pp文件会显得过于的冗长。在实际生产中,我线上的puppet只是用来同步一些文件和账号,下面简明介绍下puppet的设置。cat site.pp

2016-10-26 15:38:07 716

原创 puppet简明教程

puppet简明教程一、puppet工作流程介绍及安装:puppet是一款自动化的管理工具,有了他的存在我们可以省去繁杂的重复性的操作。只要定义好相应的规则策略,就能将服务器设置成为我们希望的目标状态。1、puppet的工作模型。首先定义资源的状态,所谓的资源的状态,就是我们希望客户端的机器需要实现什么样的目标状态(比如说安装linux,安装mysql等),之后在客户端进行

2016-10-25 15:37:05 1852

原创 grep断言

零宽断言的意思是(匹配宽度为零,满足一定的条件/断言) 我也不知道这个词语是那个王八蛋发明的,简直是太拗口了。  零宽断言用于查找在某些内容(但并不包括这些内容)之前或之后的东西,也就是说它们像\b ^ $ \ 这样的锚定作用,用于指定一个位置,这个位置应该满足一定的条件(即断言),因此它们也被称为零宽断言。 断言用来声明一个应该为真的事实。正则表达式中只有当断言为真时才会继续

2016-10-24 14:04:56 4345

转载 nginx location rewrite匹配顺序

Rewrite( URL 重写)指令可以出现在server{} 下,也可以出现在location{} 下,它们之间是有区别的!对于出现在server{} 下的rewrite 指令,它的执行会在location 匹配之前;对于出现在location{} 下的rewrite 指令,它的执行当然是在location 匹配之后,但是由于rewrite 导致HTT

2016-10-18 11:39:09 4073

原创 tac处理文本

file,如何去除从a到c之间的数据12abcdce结果abcdc方法一:sed -n '/a/,$p' file | tac | sed -n '/c/,$p' | tac这个方法我觉得挺巧妙的首先取出的是a开头的行,然后在翻转(tac),然后在取出c开头的行,这时候就取出了从c到a的所有的行,然后在翻转即得到了结果。t

2016-10-17 14:59:08 538

原创 查看某个命令是由那个包提供的

在安装命令的过程中,如果利用yum安装的话,通常的话我们直接yum -y install  (command-name)就可以安装上了,但是同样有时候,并没有同名字的rpm包存在。下面简单的介绍下识别的方法:如果我们的系统中没有netstat这个命令,所以yum -y install netstat,肯定是安装不上的[root@node3 xuejinliang]# yum -y inst

2016-10-10 14:26:58 6564 1

原创 shell截取字符串

在截取shell变量中的子串中,有很多办法,下面简单介绍一种。利用变量自身以及特殊的符号即可实现file=/dir1/dir2/dir3/my.file.txt要求截取一下字符串file.txttxt/dri1/dir2/dir3nulldir1/dir2/dir3/my.file.txt/dir1/dir2/dir3/my.file/dir1/dir2/dir

2016-10-09 18:00:05 348

原创 ls查看atime,ctime,mtime

ls命令可以用来查看文件的atime,ctime,mtime。1、如果我们利用的是ls -l来查看文件的状态的话,那么此时文件的显示时间是modify的时间。2、ls -lc显示的时间是change时间。3、ls -ltu  按照访问时间排序并显示。4、ls -lt  按照修改时间排序。

2016-09-27 10:44:31 5143

转载 开关机定时执行脚本

这几天接到一个任务,通过一台链接UPS低地位自动关机功能的linux系统,触发其他系统自动关机。昨天研究了一天,终于实现linux在关机或重启的时候执行某个任务。   现在把实现过程描述如下:  先写一个脚本放在/etc/rc.d/init.d下,chmod -f 777  , 再ln -s 到 /etc/rc.d/rc0.d/K01脚本名 与 /etc/rc.d/rc6.d/K0

2016-09-23 10:36:58 2464

原创 winscp实现跳板机连接

winscp实现 google-authentication键盘交互式认证&跳板机实现。普通用户想利用ftp连接,并且实现上传的话,会出现没有权限的提示,这个问题前面已经解决过,但是现在怎么实现google认证加上跳板机呢。1、建立跳板机连接 填写好跳板机的地址,端口等信息,注意此处的是跳板机的信息。2、 其中sftp和shell的设置如果不太明白的话,参考我的另外一个

2016-09-19 13:37:11 14143 3

ansible 简明教程

本文对ansible及常用进行了介绍

2017-02-18

salt-stack简明教程

2017-02-17

puppet实践

本文正对puppet的安装到通用模块的使用进行了简明的介绍

2016-12-13

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除