用脚本来讲一个技术生活的故事

简介: 对于生活,用文字表达是一种非常好的方式,作为技术人,我决定使用一个脚本来映射技术生活中的一些小故事,也是在今天突然想到的。 对的,你没有看错,就是下面这个命令。但凡接触过Linux系统,这个命令还是很熟悉的,不熟悉也没有关系,就是查看服务器的磁盘空间。
对于生活,用文字表达是一种非常好的方式,作为技术人,我决定使用一个脚本来映射技术生活中的一些小故事,也是在今天突然想到的。
对的,你没有看错,就是下面这个命令。但凡接触过Linux系统,这个命令还是很熟悉的,不熟悉也没有关系,就是查看服务器的磁盘空间。
    df -h
我们像对待艺术品一样围着这个命令,认真的看看它,为什么叫df,想必是Disk Filesystem的意思吧,而为什么是-h选项,你还真想对了,其实-k -g等选项
    -a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统。
    -k 以k字节为单位显示。
    -i 显示i节点信息,而不是磁盘块。
    -t 显示各指定类型的文件系统的磁盘空间使用情况。
    -x 列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。
    -T 显示文件系统类型。
当然我们的重点不是这里,我们的工作需要查看服务器的磁盘空间情况,所以我们登录服务器,然后在服务器段运行这个命令就可以看到了。
后来,网络进行了隔离,我们不能直接连接到这个服务器了,我们有了中控机,堡垒机,需要输入token,动态口令等。登录之后我们才有权限连接到服务器,当然我们使用的还是df -h的命令。
每天登录到服务器多次,几十次,上百次,发现真是一件体力活,能不能简单一些,我们发现可以使用ssh来简单实现,ssh登录后,直接发送df -h的命令即可。
就像下面的形式:
    ssh 10.127.133.45 "df -h"
一下子感觉我们的生活就解放了很多,配置了网络信任,我们不用每次都苦逼的输入密码,每次输入各种火星文密码也够折腾的。原来生活可以这么简单。
后来工作任务慢慢重了,交到手头的服务器多了,比如我们就说有2台。这下好了,我们只需要对脚本做一些简单的改进就可以了,比如下面的方式。
      ssh 10.127.133.45 "df -h"
     ssh 10.127.133.46 "df -h"
这样确实能够实现我们的需求,而且本身来说也没有什么问题,如果严格来看,就是可以重构一下,硬编码的痕迹太重了。这个脚本让人看到还不得笑话。
于是我们改进一下:
我们写了一个shell脚本如下,当然还用到了function
function ssh_df_h
{
ssh $1 "df -h"
}
ssh_df_h 10.127.133.45
ssh_df_h 10.127.133.46
这样来看这个功能就简化了一些,说实话简化了吗?逻辑上看起来是简化了,好吧,这个也不是重点,当然看起来这个脚本还不错,已经做了解耦和。
后来发现脚本的功能是不是还能够改进,如果我要做其它的操作是不是还要写一个差不多的脚本,重复造轮子的活看起来也是在太没有技术含量了。
我们继续改进,继续做了解耦和。
function ssh_cmd
{
ssh $1 "$2"
}
ssh_cmd 10.127.133.45 "df -h"
ssh_cmd 10.127.133.46 "df -h"
这个时候脚本看起来更加灵活了。你也对服务器列表做了一层定制,让这个脚本看起来更加高大上。看起来工作还是挺完美的了。我们自己用了下感觉还不错,然后就推广到更多的部门去使用。这个对我们也是蛮有成就感的。
然后没几天就出了一个问题,究其原因就是脚本的调用方式如下:
ssh_cmd 10.127.133.45 "rm xxxx"
啊,怎么运行了一个删除命令,这个时候服务器上的文件都被删了。
然后脚本完全禁用,调整了网络,这个时候我们在服务器上只df -h都很难了,而且设定了更多更加严格的安全策略,可以堪称史上最xxxx的。
突然我们发现竟然一夜回到解放前。这会不会是一个循环?


目录
相关文章
|
3月前
|
人工智能 Oracle 关系型数据库
kettle开发-其实chatGPT一直在身边
kettle开发-其实chatGPT一直在身边
46 0
|
2月前
|
JavaScript Java Python
Web自动化三种等待方式,一篇文章教会你
Web自动化三种等待方式,一篇文章教会你
65 1
|
8月前
|
人工智能 自然语言处理 程序员
《游戏测试》编写 Prompt 将成为程序员的必修课
《游戏测试》编写 Prompt 将成为程序员的必修课
|
8月前
|
人工智能 测试技术
《游戏测试》ChatGPT会干掉测试吗? 1
《游戏测试》ChatGPT会干掉测试吗?
|
SQL 敏捷开发 监控
好文赏析:一文读懂运行时应用程序自我保护(RASP)
RASP作为一种新型的、有效的、实时的应用保护手段,正被越来越多的企业使用,本文用浅显易懂的文字讲解了RASP技术、RASP与WAF的关系,并提供了应用解决方案,快来阅读吧~
237 0
|
SQL 安全 大数据
【基础理论-WEB测试】面试官让你介绍下web测试,标准的高大上回答如下:
【基础理论-WEB测试】面试官让你介绍下web测试,标准的高大上回答如下:
|
测试技术 API Python
热饭的测开成果盘点第六期:在线编辑脚本平台
本期介绍的是一个django平台,它是我在18年的第一次大胆尝试在线维护脚本组装脚本。
热饭的测开成果盘点第六期:在线编辑脚本平台
|
程序员 开发者
开发者故事|代码虐我千万遍,我待代码如“初恋”
许多人在选择“程序员”这一职业的背后,或多或少都会有故事可讲。本文是我们与一名 Erda 的用户沟通时深度挖掘到的故事,征得本人同意后对其进行了整理,并设立了【开发者故事】这一栏目,旨在收纳广大同学的故事。
246 0
开发者故事|代码虐我千万遍,我待代码如“初恋”
如何用简单的方式获取C端用户,实力派王素杰说要从B端做起|靠才华
在线教育作为o2o的巨大分支,一个曾经非常显著的优势是提供了新的传播途径。一根网线连接名师和用户,使得老师的个人能力不再局限于地域,用户的学习方式也不再局限于传统课堂。
386 0
|
程序员
如何用一段简单的代码讲述一个悲伤的故事?
程序员的悲伤故事难道不应该是: 别人的老板晚上带他出去耍,你的老板半夜催你改代码; 别的程序员工资高、待遇好,而你只是血压高、心态好…… 擦干眼泪告诉自己:程序员前半生的悲伤都不是事儿,因为后半生你就慢慢习惯了。
939 0