shell
文章平均质量分 85
andyguo
郭振华 360资深性能测试专家 ,有7年主流互联网公司的从业经验,对服务端性能测试、移动端性能测试都有较深研究,目前主要负责团队性能测试方案设计、测试平台研发和创新技术引进等工作。目前副业做婚恋相关的项目,有单身的或者感兴趣的可以一起搞起来
展开
-
尚观第十一天学习笔记ssh ftp
NFS:nfs提供文件系统portmap 提供协议rpc[root@station230 ~]# /etc/init.d/portmap restart[root@station230 ~]# /etc/init.d/nfs restart配置文件:主包:nfs-utils[root@station230 ~]# vim /etc/exports /tmp原创 2012-09-23 21:04:42 · 4366 阅读 · 0 评论 -
keepalive之mysql故障自动切换脚本
MySQL架构为master-slave(主从),master故障自动切换到slave上。当然也可以设置为双master,但这里有个弊端:就是当主的压力很大时,从上延时很大,比如落后2000秒,此时主挂了,从接管(VIP漂移到从),用户刚才发表的文章,此时因为同步延时大,还没复制过来,于是用户又发表了一篇文章,当原来的master修好后,因从的IO和SQL线程还在开启状态,还会继续同步刚才没有同步转载 2012-11-05 15:35:22 · 7135 阅读 · 0 评论 -
利用keepalived构建双主MySQL
使用MySQL双master+keepalived是一种非常好的解决方案,在MySQL-HA环境中,MySQL互为主从关系,这样就保证了两台MySQL数据的一致性,然后用keepalived实现虚拟IP,通过keepalived自带的服务监控功能来实现MySQL故障时自动切换。下面,我把即将上线的一个生产环境中的架构与大家分享一下,看一下这个架构中,MySQL-HA是如何实现的,环境拓扑如下原创 2012-09-10 13:07:08 · 7950 阅读 · 1 评论 -
尚观第15周sed学习笔记
注: 本文档中的代码和图片均来自《sed与awk(第二版)》 一 文本的操作sed是一个“非交互式的”面向字符流的编辑器,awk是一种负责模式匹配的程序设计语言,它的典型示例是将数据转换成格式化的报表。 二 了解sed awk的基本操作范例一:file1.txtJohn Daggett, 341 King Road, Plymouth MAAlice Ford,原创 2012-11-26 09:26:05 · 1892 阅读 · 0 评论 -
尚观第15周AWK学习笔记
一 编写awk 脚本HELLO,WORLD$echo 'this line of data is ignored' > test$ awk'{ print "Hello, world" }' testHello,worldAwk读入一行,执行一次括号里面的动作 $ cattest2Hello,world$ awk'{ print }' test2Hello,原创 2012-11-26 09:23:17 · 2095 阅读 · 0 评论 -
Linux:rm删除文件,但空间不释放?
一般说来不会出现rm掉不释放空间的情况出现这样的情况一般是由于有进程在向文件中写数据或有进程正在访问文件而此时rm文件则会出现不释放空间的情况理解这样的问题需要理解rm的操作内含一个文件的存放有数据部分和指针部分,而指针位于文件系统的头删除操作系统的一个文件与oracle drop表的实质有些相似处理掉指针,文件数据部分占用的空间就可以写入新内容了之所以出现rm不释放即转载 2012-11-12 11:35:18 · 1998 阅读 · 0 评论 -
linuxshell中"2>&1"含义
脚本是: nohup /mnt/Nand3/H2000G >/dev/null 2>&1 & 对 于& 1 更准确的说应该是文件描述符 1,而1 一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_result ,然后复制标准输出到文件描述符2(STDERR_FILENO)转载 2012-11-12 16:29:35 · 662 阅读 · 0 评论 -
tomcat的自动重启脚本
#!/bin/sh#kill tomcat pidcase "$1" instart) cd /usr/local/tomcat#!/bin/sh#kill tomcat pidcase "$1" instart) cd /usr/local/tomcat rm -rf work/*原创 2012-11-13 17:52:52 · 2263 阅读 · 0 评论 -
尚观shell的学习
#!/bin/bash#预定义变量的学习a=`pgrep a.sh `if [ $? -eq 0 ]; then echo "ps 命令执行成功" echo 执行结果是:$aelse echo "执行失败,erro code is :$?"fiecho 当前脚本的名称是:$0echo 当前进程的进程号是:$$echo 你一共输入了$#个参原创 2012-11-18 19:54:54 · 2877 阅读 · 0 评论 -
Linux下批量杀掉 包含某个关键字的 程序进程
有时候因为一些情况,需要把 linux 下符合某一项条件的所有进程 kill 掉,又不能用 killall 直接杀掉某一进程名称包含的所有运行中进程(我们可能只需要杀掉其中的某一类或运行指定参数命令的进程),这个时候我们需要运用 ps , grep , cut 和 kill 一起操作。ok,下面给出具体的参考:ps -ef | grep LOCAL=NO | grep -v gre转载 2012-11-02 16:16:47 · 836 阅读 · 0 评论 -
Linux 抓取网页方式(curl+wget)
Linux抓取网页,简单方法是直接通过 curl 或 wget 两种命令。curl 和 wget 命令,目前已经支持Linux和Windows平台,后续将介绍。curl 和 wget支持协议curl 支持 http,https,ftp,ftps,scp,telnet等网络协议,详见手册 man curlwget支持 http,https,ftp网络协议,详见手转载 2012-11-02 16:09:30 · 1715 阅读 · 0 评论 -
Linux 抓取网页实例(shell+awk)
上一篇博客讲了Linux抓取网页的方式,有curl和wget两种方式,这篇将重点讲Linux抓取网页的实例——抓取google play全球12国的游戏TOP排名要抓取google play游戏排名网页,首先需要分析网页的特点和规律:1、google play游戏排名网页,是一个就“总-分”形式,即一页网址显示若干排名(如24个),有若干个这样的网页组成全部游戏的总排名转载 2012-11-02 16:08:50 · 8569 阅读 · 2 评论 -
在linux服务器中查看当前连接统计数的命令
在linux服务器中可输入查看当前连接统计数的命令,如下所示: netstat -n| awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' LAST_ACK 14 SYN_RECV 348 ESTABLISHED 70 FIN_WAIT1 229 FIN_WAIT2 30原创 2012-10-16 09:41:07 · 1802 阅读 · 0 评论 -
一个监控WEB服务是否正常的shell
方法1:#! /bin/bash. /etc/profile. /root/.bash_profileexport PATHexport LC_ALL=zh_CNmysql -e "select url,msg,telList from monitor.url where checkStatus='1';" -ss >/tmp/url.tmpURL="htt原创 2012-10-19 14:27:34 · 3476 阅读 · 0 评论 -
已经比较简单的日志分割脚本
一个比较简单但是比较粗暴的按小时分割日志脚本#!/bin/bashY=` date --date="-1 hour" +%Y`m=` date --date="-1 hour" +%m`d=`date --date="-1 hour" +%d`H=`date --date="-1 hour" +%H `dir=$Y/$m/$d/#log日志的位置logdir原创 2012-10-30 17:47:17 · 1082 阅读 · 0 评论 -
利用ftp定时上传log到其他服务器
#!/bin/bash#时间的生成Y=` date --date="-1 hour" +%Y`m=` date --date="-1 hour" +%m`d=`date --date="-1 hour" +%d`H=`date --date="-1 hour" +%H`#ip地址的获取IP="`/sbin/ifconfig |grep 'Bcast'|awk -原创 2012-10-30 17:49:14 · 1488 阅读 · 0 评论 -
Linux按行读取文件
#!/bin/bashn=1while ((ndo array=$(cat readline| sed -n "${n} p"|awk '{print $1}') echo $array array2=$(cat readline| sed -n "${n} p"|awk '{print $2}') echo $array2 (原创 2012-09-04 17:30:33 · 5714 阅读 · 0 评论 -
使用iptables封指定IP访问网站的方法
使用iptables封指定IP访问网站的方法近来网站访问量异常增长,通过分析apache access_log找出了频繁访问的IP地址,确认是盗链,决定使用iptables封掉.脚本如下:# awk '{print $1}' access_log.20110622 |sort |uniq -c |sort -nr |more 15112 183.38.186.60转载 2012-10-22 14:57:54 · 1607 阅读 · 0 评论 -
iptables命令学习
iptables 指令语法:iptables [-t table] command [match][-j target/jump] -t参数:用来指定规则表,内建的规则表有三个,分别是:nat,mangle和filter,当未指定规则表时,则一律视为是filter。几个功能表的功能如下:nat规则表拥有prerouting和postrouting两个规则链,转载 2012-10-23 11:43:35 · 885 阅读 · 0 评论 -
Linux IP代理筛选系统(shell+proxy)
上一篇博客,介绍了Linux 抓取网页的实例,其中在抓取google play国外网页时,需要用到代理服务器代理的用途其实,除了抓取国外网页需要用到IP代理外,还有很多场景会用到代理:通过代理访问一些国外网站,绕过被某国防火墙过滤掉的网站使用教育网的代理服务器,可以访问到大学或科研院所的内部网站资源利用设置代理,把请求通过代理服务器下载缓存后,再传回本地,提高访转载 2012-11-02 16:06:32 · 6022 阅读 · 0 评论 -
expect使用ssh登录脚本
基础篇:#!u/s+ SSH spawn ssh -l root 10.10.10.24# 等待响应,第一次登录往往会提示是否永久保存 RSA 到本机的 know hosts 列表中;等到回答后,在提示输出密码;之后就直接提示输入密码expect "(yes/no)?" {send "yes\r"expect "password:"send "123456\r"}原创 2012-11-21 12:51:20 · 5147 阅读 · 2 评论 -
尚观(awk sed高级使用)使用shell对一些非法访问ip进行报警封锁解封
作者:andyguo 博客:http://write.blog.csdn.net/postedit/8211474 转载必须注明作者和来源#!/bin/bashLOGPATH="/home/andyguo"LOGNAME="h_access.log"#恢复被封闭ip时间单位是秒TIME=50#被封ip记录的log位置FILENAME="/home/andyguo/m原创 2012-11-22 11:31:47 · 4030 阅读 · 0 评论 -
ssh在linux安全中的作用
安全 Shell (SSH)是最通用的系统管理工具之一。它允许登录远程系统并在其上执行命令。它利用强大的加密技术和主机密钥来防止网络嗅探。他是默认启用的唯一网络服务,并且接受远程访问。X 选项 可使远程主机上的程序在本地桌面环境下显示图形界面。这带来了便利,而且为本地主机与远程主机之间的通信通道提供了保护 [root@localhost ~]# ssh 192.168.1.原创 2012-12-20 11:54:20 · 5350 阅读 · 0 评论 -
linux ll命令参数的详解
用法:ls [选项]... [文件]...列出 FILE 的信息(默认为当前目录)。如果不指定-cftuvSUX 或--sort 选项,则根据字母大小排序。长选项必须使用的参数对于短选项时也是必需使用的。 -a, --all 不隐藏任何以. 开始的项目 -A, --almost-all 列出除. 及.翻译 2012-12-21 17:23:29 · 33124 阅读 · 2 评论 -
shell 特殊变量 整理
$0 正在被执行命令的名字。对于shell脚本而言,这是被激活命令的路径$n 该变量与脚本被激活时所带的参数相对应。n是正整数,与参数位置相对应($1,$2…)$# 提供脚本的参数号$* 所有这些参数都被双引号引住。若一个脚本接收两个参数,$*等于$1$2原创 2013-01-06 11:53:29 · 914 阅读 · 0 评论 -
httpd系统自带启动脚本详解
市面上有很多关于脚本的书籍和教程,好是好,可写的越来越像编程书。其中不仅有算法的介绍,比如递归,冒泡法,高效,冗余。还伴有非常高深的案例,看的是云里雾里,头昏脑胀。看完以后感觉如下,书是好书,例子是好例子,算法更是好算法,可多少有些脱离实际,提高的可以,干活的不成。对于没有任何程序开发基础的同志来说更是如此。 可那些书就不看了吗?答案是否定的,这些书上所撰写的内容虽然晦涩可都是好东原创 2013-01-24 09:19:41 · 9057 阅读 · 0 评论 -
Shell图形化监控网络流量
网络流量的监控工具有很多,如:Mrtg、Cacti、Zabbix等等,他们都有着各自的特点,不同的侧重,只为适合不同的应用场景的各种特殊需求。除了网络流量监控工具以外,还有Nagios这样的监控主机状态的工具,不仅能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。还能在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮转载 2013-01-24 09:17:44 · 3436 阅读 · 0 评论 -
awk 统计访问时间超过1000毫秒的接口
日志格式如下:2013-01-10 15:21:44:815 INFO [catalina-exec-115] com.lietou.common.filter.AbstractIOLogger | status=0, eclipse=23ms, servletPath=/requestResumeInfo/findResume.json, clientIP=10.10.10.22, inpu原创 2013-01-10 16:03:29 · 3928 阅读 · 0 评论 -
使用c和shell实现远程tomcat的重启备份脚本
下面是客户端程序#include #include #include #include #include #include #include #include #define SERVPORT 6666 //定义的端口号#define MAXDATASIZE 1024 最大字节数#define SERVER_IP "10.10.10.158"原创 2013-02-25 11:01:09 · 2563 阅读 · 0 评论 -
shell 中常用的字符串处理函数
1. cut命令通常,cut命令用来从输入文件中选取一个或多个字段或者一些字符。常见的语法:cut -c list [file ...]cut -f list [file ...]选项:-c: 选择某行中的字符,例如ls -l | cut -c 3-5是选择ls -l命令输出的第3到第5个字符后输出。-f: 选择某行中的字段,例如ls -l | cut -f 3-5 -转载 2013-05-15 13:01:55 · 1840 阅读 · 0 评论 -
linux 安装中的selinux 学习笔记
SELinux 是「Security-EnhancedLinux」的简称,是美国国家安全局「NSA=The National SecurityAgency」 和 SCC(Secure Computing Corporation)开发的 Linux 的一个扩张强制访问控制安全模块。 因为企业的业务平台的服务器上存储着大量的商务机密,个人资料,个人资料它直接关系到个人的隐私问题。特原创 2012-12-20 12:05:17 · 5457 阅读 · 1 评论 -
远程同步项目并实现重启备份
远程同步脚本#!/bin/bashif [ "$1" == "" ];then echo "请输入你要进行的操作:{backup start stop restart rsync}"elif ([ "$1" != "start" ] && [ "$1" != "stop" ] && [ "$1" != "restart" ] && [ "$1" != "backup" ]原创 2012-12-19 16:28:38 · 1228 阅读 · 0 评论 -
shell 高级学习成果分享
#/bin/bash#log的路径LOGPATH="/home/andyguo"#log的名称LOGNAME="h_access.log"#user_id保存的时间TIME=360#user_id超过阀值记录的文件名称USER_ID_FILE="/home/andyguo/resumedog.log"IPTABLES_FILE="/home/andyguo/ip原创 2012-12-17 09:52:21 · 1197 阅读 · 2 评论 -
尚观awk学习
awk 用法:awk ' pattern {action} ' 变量名 含义 ARGC 命令行变元个数 ARGV 命令行变元数组 FILENAME 当前输入文件名 FNR 当前文件中的记录号 FS 输入域分隔符,默认为一个空格 RS 输入记录分隔符 NF 当前记录里域个数 NR 到目前为止记录数 OFS 输出域分隔符 ORS 输出记录分隔符原创 2012-11-22 09:42:46 · 2972 阅读 · 0 评论 -
尚观 python获取服务器性能
最近在学习python,首先学习一下性能指标的监控,平时做性能测试都是在服务器上部署测试脚本进行监控,比较麻烦,现在有了这个脚本就可以直接抓取远程的性能指标写到报告中#!/usr/bin/python#coding:utf-8 import paramiko,string,timeremote_m = [ # db server ('10.10.10.29',原创 2012-11-20 13:46:26 · 3549 阅读 · 0 评论 -
echo 添加颜色
echo要变换颜色的时候,要使用参数-e格式: echo -e "\033[字背景颜色;字体颜色m字符串\033[0m"例如: echo -e "\033[41;36m something here \033[0m"其中41的位置代表底色, 36的位置是代表字的颜色注:1、字背景颜色和文字颜色之间是英文的“""”2、文字颜色后面有个m3、字符串前转载 2012-12-24 10:35:29 · 1981 阅读 · 0 评论 -
find之xargs
下面给出find命令的主要应用示例: /> ls -l #列出当前目录下所包含的测试文件 -rw-r--r--. 1 root root 48217 Nov 12 00:57 install.log -rw-r--r--. 1 root root 37 Nov12 00:56 testfile.dat -rw-r--r--. 1 root转载 2012-12-05 15:28:13 · 732 阅读 · 0 评论 -
远程上线脚本
客户端脚本:#!/bin/bashecho -e "\033[32m 命令介绍如下:\033[0m"echo 'backup : 备份'echo 'start : 启动'echo 'restart : 重启'echo 'stop : 停止'echo 'rsync : 同步'echo 'rollback : 回滚'read -p "请输入要同步的命令: " c原创 2012-12-24 14:54:55 · 1784 阅读 · 0 评论 -
linux sudo学习
一般使用者管理系统的方式是利用 su 切换为超级使用者。但是使用 su 的缺点之一在于必须要先告知超级使用者的密码.sudo 使一般使用者不需要知道超级使用者的密码即可获得权限。首先超级使用者将一般使用者登记在特殊的档案中(通常是/etc/sudoers),即完成对该使用者的授权(此时该使用者称为“sudoer”);在一般使用者需要取得特殊权限时,其可在命令前加上“sudo”,此时原创 2012-12-14 09:24:10 · 3312 阅读 · 0 评论 -
linux安全之权限篇
1。权限 ugo ( r - w - x )*******************************************************************************当一个用户访问一个文件的时候1.如果当前用户的UID与文件owner的UID匹配,那么就遵守第一个三位组的权限,如果不匹配那么看GID2.如果当前用户的GID与文件group的G原创 2012-12-14 09:27:00 · 3314 阅读 · 0 评论