SecureCRT全局发送相同命令,快速抓取服务器信息的方法
昨天,在新公司接到了第一个任务:统计所有服务器的几个信息。200 多台呢!一个台一台的去执行命令也太苦逼了吧?于是度了下,找到了这个方法,感觉很不错!现在来分享下,希望对像我这样苦逼的人有所帮助!
一、SecureCRT 同时向多个 session 发送相同命令的方法
对于要管理多台服务器的 SA 或 DBA 来说, 如果要在所有服务器上操作同样的命令, 一台台登陆操作是个很笨的方法. 一直以为 SecureCRT 没有这个功能, 曾经转向使用有该功能的 Xshell 软件, 但是 Xshell 又没有横向滚动条, 让人不爽, 所以就好好研究了一下 SecureCRT, 原来是可以的.
1. 首先在 SecureCRT 里同时打开多个 session(会话)
2. 从菜单栏勾选 View - Chat Windows(视图—交互窗口)
3. 在 Chat Windows(交互窗口)右键鼠标, 选上 Send Chat to All Tabs(发送到所有...), 这样 Chat Windows 里会有"<Send chat to all tabs>"(发送交互到所有会话) 的标志
4. 现在,在 Chat Windows(交互窗口)输入命令, 然后回车, 则当前打开的所有 Session 都会执行 ls 命令
5. 如果要同时执行多个命令, 在 Chat Windows(交互窗口)输完第一条命令后,按 Ctrl+Enter, 再输入第二条, 最后回车, 则当前打开的所有 Session 都会执行刚刚输入的多条命令。
6. 如果要取消该功能, 则反过来取消交互勾选即可。
英文地址: http://www.vandyke.com/support/automation/chatsendcom.html
整理来源:http://hi.baidu.com/edeed/item/a78c33840862501cc31627b8
二、简单的演示下 200 多台服务器同时抓取硬件配置、系统版本及外网 IP 的方法,加深记忆:
①、写好抓取的信息对应的命令行:
- #切换到 root
- sudo su - root
- #抓取硬件配置、系统版本及外网 IP 信息
- echo
dmidecode | grep "Product"|head -1|cut -d ":" -f2
/cat /proc/cpuinfo |grep "model name"|uniq|awk '{print $6":"$7" "$8$9}'
-grep 'physical id' /proc/cpuinfo | sort -u | wc -l
xgrep 'core id' /proc/cpuinfo | sort -u | wc -l
"核"(grep 'processor' /proc/cpuinfo | sort -u | wc -l
"线程")/"内存:"free -g |awk '{print $2}'|sed -n 2p
GB/"硬盘容量:"fdisk -l|grep GB|awk '{print $3}'
GB>serverinfo - cat /etc/issue|awk '{print $3" "$4" "$5" "$6" "$7" "$8" "$9}'>>serverinfo
- ifconfig|grep "inet addr"|grep -v "127.0.0.1"|grep -v "10.10"|awk -F " " '{print $2}'|cut -d ":" -f2>>serverinfo
- #清屏
- clear
- #打印信息
- cat serverinfo
②、按照上面的步骤切换到交互窗口,粘贴①中命令行:
③、回车后,所有会话都打印出我要的信息了:
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- TypeScript的class关键字
- TypeScript里一些特殊的类型
- TypeScript的类型断言,有点像ABAP的强制类型转换
- 什么是TypeScript的字符串索引签名
- [初探] proxy 的优势与使用场景
- TypeScript里的interface和class以及对应的JavaScript代码
- TypeScript里的interface扩展,多继承以及对应的JavaScript代码
- TypeScript里的混合类型
- 完全图解 HTTPS
- TypeScript里的完整函数定义语法
- TypeScript里的类型为any和泛型的区别
- 乐观锁、悲观锁,这一篇就够了!
- 面向切片编程(AOP)应用的一些实际例子
- 计数计量单位KMGTPEZY【计算机】【天文】
- 不用临时的变量 优雅、高效的交换两个数方法