日常命令自动化思路

经常需要查询日志的朋友,肯定都对重复的一堆登陆交互命令习以为常,仔细想想其实这些是很影响效率的,作为程序员同一件事干三次以上就要自动化了,这些命令本质上不就是一堆linux命令的组合么,为什么不用shell命令把它给自动化了
例如git命令,很多时候就是习惯三连,别误会不是点赞转发订阅😄。就是git add , git commit, git push.这三个命令都敲烂了,每次提交就分支名和提交信息可能需要定制化,为什么不把它合并成一步操作。
我写了下面的shell命令,
# !/bin/bash
# author : micro

echo "自动化git提交"
sleep 1s

echo "展示当前git仓库状态"
git status
sleep 1s

echo "添加当前工作区变更"
git add .
echo "提交到本地仓库, 提交信息为 $2"
git commit -m "$2"
echo "同步到远端分支 $1"
git push origin "$1"

echo "处理结束"

再把它添加到用户目录下的.bash_profile文件里,指定该脚本的目录。
alias agit='sh [文件目录]/git-auto.sh

别忘记source .bash_profile 一下立即生效。

之后在git仓库,直接敲击agit [分支] [提交信息]

用久了就再也回不去了。

还有就是最近天天登陆机器查看日志或则是排查问题啥的,都需要一遍一遍登陆机器,而且由于一些需求还需要一台机器登陆多个窗口,每次新的窗口都要重新敲一堆的登陆命令实在是非常的繁琐,对于一个重视效率的程序员来说这是无法容忍的,之前貌似听说过与机器保持session的复制窗口,可以了解一下,但是对于我连第一次登陆机器的session我都懒得敲,咋办!

好吧来仔细分析咱机器登陆的几个步骤:
ssh xxxxx 登陆跳板机器
Opt> 命令提示框需要交互,填写机器名或则应用名
进入机器
切换到日志目录下面

看到没有!其本质就是一堆命令!问题是如何实现交互命令!自动化输入,这里拿出expect工具,它能实现交互型的脚本命令,其是在tcl基础上的工具,需要先安装tcl和tk。tcl官网下载 下载解压后到下面目录安装
安装顺序是tk, tcl 然后是expect!!
关于安装细节参考这篇文章 安装excpt教程

解压不说了,文中的configure是./执行的

#cd tcl8.4.19
#cd unix
#./configure

官网下载这个实在是太慢了,于是找到csdn tcl下载
tk下载

安装except用主流的5.45。在安装中遇到了大坑

在make命令链接库时候遇到了
在这里插入图片描述
意识就是缺乏 ltclstub库。
后来重试了版本except下载

然后又在安装tk的时候遇到了
在这里插入图片描述
原来是以来X11,最新的macx已经不带了,需要自行安装XQuartz。下载链接

要崩溃了!!!

后来发现mac mojave自带expect命令。查看/usr/bin/下面,或则终端直接输入expect看是否可以进入即可。

下面执行脚本:

# !/usr/bin/expect -f
# author : jihai
send_user "自动登陆xxxx服务器"
spawn ssh xxx
set serverIndex [lindex $argv 0]
expect "Opt>" {
    send "xx\n"
    send "${serverIndex}\n"
    send "cd /logs/xxxx\n"
}
interact

网上很多文章说./执行我没成功,执行的时候使用expect xxx.sh执行成功!!

大功告成!!!

后续再配合alias配置别名,更进一步自动化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值