Linux升级安装openssh7.5p1

  一、背景简介   openssh频繁的爆出漏洞,现在的yum源版本都太低,一般是OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013,安全性太差,强烈建议去openssh官网下载最新版本进行编译安装升级。 现以CentOS6.7为例升级openssh版本。   二、系统环境 Linux OS:CentOS 6.7 x86_64 原openssh版本 : OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013 新openssh版本:OpenSSH_7.5p1, OpenSSL 1.0.1e-fips 11 Feb 2013 iptables关闭    service iptables stop selinux关闭    setenforce 0   三、升级openssh #1 安装openssh软件的所需依赖包 yum -y install telnet telnet-server openssl openssl-devel zlib zlib-devel pam-devel   #2…

Continue Reading

shell之too many arguments的解决方法

    新手在编写脚本时候,在做字符比对容易出现“too many arguments”报错,比如下面的代码: [pc@S5 Desktop]$ [ -n `ps aux | grep sshd` ] && echo test code bash: [: too many arguments 解决方法一: [pc@S5 Desktop]$ [[ -n `ps aux | grep sshd` ] ] && echo test code 解决方法二: [pc@S5 Desktop]$ [ -n ”`ps aux | grep sshd`“ ] && echo test code 我一般都用第二种方法,对变量加上双引号容错性强

Continue Reading

Linux File System浅析

    折腾了Linux这么久,对磁盘存储也吃了不少亏,现在总结点Linux文件系统方面的东西。   一、硬件层面       一个真实的机械硬盘物理结构大致如下图所示:   其中磁头和盘片之间的距离是微米数量级,且磁盘内部是真空封闭的,一旦有空气进入,硬盘很容易故障。 对磁盘盘片上的抽象图如下图所示:       在磁盘盘片上主要有三部分划分:     track:磁道,以转轴为中心,划分了许多同心圆,每个圆命名为一个磁道,类似体育场上的跑道     sector:扇区,相邻两个磁道之间的区域,又被划分许多区域,叫做扇区     cynlinder:柱面,对于多盘片的硬盘来说,由于臂杆和磁头固定,为了分区方便,引入柱面概念,一个分区的开始和结束都以柱面进行标识   二、软件层面 典型的ext 文件系统在格式化的时候基本上会划分为多个块组(Block Group)的,每个块组都有独立的 inode/block/super block 系统,整体展示图如下,   其中各块的含义如下: MBR:master boot record,硬盘的主引导记录,前446字节存放主引导程序,中间64字节存放分区表信息(主分区+扩展分区<=4),最后2个字节是结束标志位。 Super Block:记录此文件系统的整体系统,包括 inode 和 block 的总量、使用量、剩余量,以及文件系统类型等。 Group Descriptor Table:文件系统描述说明,描述每个 block group 的开始与结束的 block 号码。 Block Bitmap:块对照表,用来快速寻找可用的 block 块。…

Continue Reading

sed删除行首行尾的空格和Tab

在Linux下处理一些文本字符串时候,往往会遇到行首行末一些空格和tab干扰最终处理结果,现留一手供以后不时之需。   1  sed去除行首空格和tab 命令:  sed -e 's/^[ \t]*//g' file 说明:  ^号代表匹配行的开头,中括号里包含空格和tab字符集,*号代表中括号里的字符集出现0次或多次   2  sed去除行末空格和tab 命令:  sed -e 's/[ \t]*$//g' file 说明:  $号匹配在行尾出现的前面提到的字符集   此外,可以合并两个命令一次性去除行首、行末的空格和tab 命令:  sed  -e 's/^[ \t]*//g’  -e ‘s/[ \t]*$//g' file  

Continue Reading

lsof命令详解

Lsof是遵从Unix哲学的典范,它只完成一个功能,并且做的相当完美——它可以列出某个进程打开的所有文件信息。打开的文件可能是普通的文件、目录、NFS文件、块文件、字符文件、共享库、常规管道、命名管道、符号链接、Socket流、网络Socket、UNIX域Socket,以及其它更多类型。因为“一切皆文件”乃为Unix系统的重要哲学思想之一,因此可以想象lsof命令的重要地位。 lsof [options] filename lsof  /path/to/somefile:显示打开指定文件的所有进程之列表 lsof -c string:显示其COMMAND列中包含指定字符(string)的进程所有打开的文件;此选项可以重复使用,以指定多个模式; lsof -p PID:查看该进程打开了哪些文件;进程号前可以使用脱字符“^”取反; lsof -u USERNAME:显示指定用户的进程打开的文件;用户名前可以使用脱字符“^”取反,如“lsof -u ^root”则用于显示非root用户打开的所有文件; lsof -g GID:显示归属gid的进程情况 lsof +d /DIR/:显示指定目录下被进程打开的文件 lsof +D /DIR/:基本功能同上,但lsof会对指定目录进行递归查找,注意这个参数要比grep版本慢: lsof -a:按“与”组合多个条件,如lsof -a -c apache -u apache lsof -N:列出所有NFS(网络文件系统)文件 lsof -d FD:显示指定文件描述符的相关进程;也可以为描述符指定一个范围,如0-2表示0,1,2三个文件描述符;另外,-d还支持其它很多特殊值,如:     mem: 列出所有内存映射文件;     mmap:显示所有内存映射设备;     txt:列出所有加载在内存中并正在执行的进程,包含code和data;     cwd:正在访问当前目录的进程列表; lsof -n:不反解IP至HOSTNAME lsof -i:用以显示符合条件的进程情况 lsof -i[46] [protocol][@hostname|hostaddr][:service|port]    …

Continue Reading

awk命令详解

一、简介     Linux下必须掌握的三大文本处理工具: 1  grep: 文本过滤器 2  sed:流编辑器 3  awk: 报告生成器 AWK是以 a.k.a. Aho, Kernighan and Weinberger三位开发者命名,它是个强大的报告生成器,只有你没想到的,没有它做不到的。  基本用法: # awk [options] 'script' file1 file2, … # awk [options] 'PATTERN { action }' file1 file2, …     print, printf 二、具体用法 1. 模式和操作 awk脚本是由模式和操作组成的: pattern {action} 如$ awk '/root/' test,或$ awk '$3 < 100' test。 两者是可选的,如果没有模式,则action应用到全部记录,如果没有action,则输出匹配全部记录。默认情况下,每一个输入行都是一条记录,但用户可通过RS变量指定不同的分隔符进行分隔。 1.1….

Continue Reading

grep命令详解

grep三大家族:grep egrep fgrep 一、基本用法 grep [options] PATTERN [FILE…]     -i ignore case     –color     -v reverse     -o only print match string     -c  计算找到行的数目     -w  只匹配单词     -q  安静模式,不输出任何信息,即使是检测到错误,而是立即返回状态0(如果匹配到的话) TIP: alias grep='grep –color'   二、正则表达式 RegExp:  regular expression 正则表达式     ^ 表示一行的开头。如:/^#/ 以#开头的匹配。     $ 表示一行的结尾。如:/}$/ 以}结尾的匹配。     \<…

Continue Reading

sed命令详解

一、简介     sed命令是著名的Linux系统流编辑器,具有强大的文本处理功能,和grep、awk一并称为Linux下的三大文本处理工具。     二、基本用法   sed [OPTION]… {script-only-if-no-other-script} [input-file]…   option :         -r, –regexp-extended                 use extended regular expressions in the script.             -n, –quiet, –silent                 suppress automatic printing of pattern space          -e script, –expression=script                …

Continue Reading

版本发布历史总结

      目前在职软件测试,做的是一电商项目,此文是对各个版本发布的总结,以做备忘。   #  2016-04-19  版本发布总结 1  高仿环境数据库必须和测试环境数据库分离,单独部署一台数据库,模拟正式环境,版本更新的数据库变更由数据库管理员完成,避免上线后数据字段的缺少。 2  了解新旧版本的差异,切实为用户考虑,做好平滑过渡,如商家后台和平台后台登录网址的友好跳转。 3  使用持续集成测试工具Jenkins,灵活发布并自动部署JAVA和MAS工程,并且结合SVN提交日志,保证文件更新的正确性和提前把控影响重大功能的文件,例如控制订单类的Java文件。 4  发布前须确认哪些功能上,哪些功能不上,这样才会在部署工程的时候不会因冗余和遗漏带来严重后果。   #  2016-07-27  版本发布总结 ——–  成功之处 1  上线前严格把控代码更新,对每个更新及更新涉及到的模块仔细验证; 2  高仿环境数据库和测试环境数据库分离,做到在程序和数据均高度模拟真实环境; 3  测试环境使用Jenkins自动构建,大大缩短了软件迭代的时间; 4  测试环境迭代完成后,积极组织开发部门相关同事展开高仿环境部署注意事项,明确各成员分工,预演正式环境发布过程; 5  主营业务燃气优化在上线前经过详细的测试方案和测试用例的设计与评审,因而在上线后未出现计划内的严重问题。   ——–  失败之处 1  上线后APP广告位出现严重BUG,此功能运营部门经常用到,但是上线前未重视,解决方法是上线前对各业务部门经常用到的模块加强质量保证; 2  高仿环境采用手动更新和部署,期间出错若干次,并且对多个BUG的更新也不利,以后须建立高仿环境的自动更新和部署机制; 3  主营燃气业务需求未做到深入调查,在上线几天后出现严重业务BUG,所以在以后的测试中对业务需求的沟通和了解要想办法深度挖掘; 4  数据库的更新在历次版本发布中均拖后腿,JAVA和MAS工程部署简单,但是前提是数据库得到正常切换后才能部署JAVA和MAS工程,后期配合DBA一起优化这个过程。   #  2016-08-31 版本发布总结 ——–  成功之处 1  各成员分工明确,不存在交叉任务,秩序统一; 2  产品需求评审比较详细,确保在产品设计源头的合理性; 3  制定详细的高仿环境部署策略,为正式环境部署做好了预演和错误尝试。  …

Continue Reading

软件测试的经验教训

1 测试要推断,不只是输出和预期结果的比较。 2 不经意间忽略的bug有可能成为以后的重大问题爆发。 3 不容易被发现的bug:1)测试步骤较为繁琐的功能 2)需要长时间测试的场景。 4 你验证过的没问题的模块并且十分确信不会出问题,结果在验证相关问题时确认真的出问题了。 5 连续点击按钮赠送了双倍慧购卡, 导致公司损失了一倍的钱,未注意重复提交的问题。 6 应该着重考虑下数据的输入异常,情况很多,对程序运行的影响不是一般的大。 7 有时候你觉得你已经掌握了全局,却没想到被一粒沙子(BUG)模糊了前进的视线  

Continue Reading