日常命令自动化思路

发布时间:2024-12-18 02:02

命令型领导者以权威和命令驱动团队 #生活技巧# #领导力技巧# #领导风格理论#

经常需要查询日志的朋友,肯定都对重复的一堆登陆交互命令习以为常,仔细想想其实这些是很影响效率的,作为程序员同一件事干三次以上就要自动化了,这些命令本质上不就是一堆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 "处理结束"

12345678910111213141516171819 再把它添加到用户目录下的.bash_profile文件里,指定该脚本的目录。

alias agit='sh [文件目录]/git-auto.sh 1 别忘记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 123

官网下载这个实在是太慢了,于是找到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 1234567891011

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

大功告成!!!

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

网址:日常命令自动化思路 https://www.yuejiaxmz.com/news/view/505487

相关内容

Beachpatrol: 浏览器自动化命令行工具指南
Python命令行定时任务自动化工作流程是什么
Python命令行定时任务自动化工作流程
Oracle数据库日常维护命令
Commix:自动化命令注入漏洞检测与利用工具
Docker常用命令整理实例
自动化运维:使用Python脚本简化日常任务
使用 iMacros 来自动化日常的工作
Ubuntu中如何自动化日常任务
9、Command 命令模式

随便看看