栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

shell写一个自动遍历服务器的脚本

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

shell写一个自动遍历服务器的脚本

expect “*]#” {send " echo “hostname: hostname” r"} //查看主机名

expect “*]#” {send “df -hr”} //查看磁盘

expect “*]#” {send “df -h|awk 'BEGIN{OFS=”t"}{if($5>11){print }}'r"} //第五个参数大于11的数据

send “exitr” //退出

ex 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 pect eof //结束

上述这种方式是完整的,这种过程比较慢,但方式想对灵活,毕竟可以同时使用多种命令,命令执行完毕后再退出,然后执行下一个spwan; 但如果对于要自动写进文件保存的数据和仅仅执行一个命令(如查看df -h)数据这种,用上述方式显然很浪费时间,写进文档的数据量也会大大增加,所以,直接ssh 0.0.0.0 后面跟上命令,这种速度更快,也更容易查看数据; 就算批量新建用户和增加密码也可用后面这种更快的方式,只是需要全局修改ssh 0.0.0.0 后面的命令一次;如,批量建用户:ssh 0.0.0.0 useradd name ,新增密码:ssh 0.0.0.0 echo passwd | passwd --stding name ——vi里面%s/new/end/g全局修改 直接把useradd name 替换为echo passwd | passwd --stding name 再跑一次脚本即可,这样跑2次的速度也比上述方法快许多。 【不能理解无所谓,跳过即可】

  • 命令简单的情况下 用下述方法:

#脚本说明:用最简单的方式实现想要的功能。

#免key登陆 并不需要密码 所以没有interact

#其他需要密码登陆的 有interact 所以如果期间有某台服务器无法登陆了 到问题ip处就会

#停止,这时需要在脚本中找到该问题ip 吧 interact 注释掉 重新跑脚本,同

#理,如果已经注释掉interact的ip恢复正常了 脚本跑到该ip也会停止,这时

#需要找到对应ip 吧interact取消注释;

#定义时间格式

set date [ clock format [ clock seconds ] -format “%Y%m%d” ]

#查看定义时间

puts “n date = $date”

#免密登陆的服务器

spawn ssh 1.1.1.1 df -h

expect {

“*assword” { send “r”;}

“yes/no” {send "yesr"exp_continue}

}

spawn ssh 1.1.1.1 df -h

expect {

“*assword” { send “r”;}

“yes/no” {send "yesr"exp_continue}

}

#需要密码登陆的服务器

spawn ssh 1.1.1.1 df -h

expect {

“*assword” { send “passwordr”;}

“yes/no” {send "yesr"exp_continue}

}

interact

spawn ssh 1.1.1.1 df -h

expect {

“*assword” { send “passwordr”;}

“yes/no” {send "yesr"exp_continue}

}

interact

[](()第二文件(普通shell脚本)

==============================================================================

#!/bin/bash

#调用交互式脚本

expect ip1.sh

#只保留7天的信息,超过7天的 自动删除。

find /teamsun/ -mtime +7 -name “*” -exec rm -rf {} ;

echo -e “n”

echo -e “33[31m 正在写入df -h信息到 /teamsun/`date +%Y%m%d`(date +%Y%m%d 两边有 `` 这个符号,下面同理),请稍等 33[0m”

echo -e “n”

#跑一次脚本则自动吧当天df -h全部情况写入到该日期文件中

expect ip1.sh > /teamsun/date +%Y%m%d

#查看所有/目录使用情况

#grep命令解释:E:支持正则表达式,B显示前2行内核,‘条件1|条件2|条件3|…’ 其中条件是 / 目录的 Filesystem 全称,df -h 可查看。

grep -En '/dev/mapper/ibmpkvm_vg_root-ibmpkvm_lv_system|/dev/mapper/os-root|/dev/mapper/rh

el_ceph-root|/dev/mapper/rhel_stor.*root’ /teamsun/date +%Y%m%d

echo -e “n”

echo -e “33[31m 如果/目录使用率有超过60的 可 cat -n /teamsun/date +%Y%m%d 查看对应ip 33[0m”

echo -e “n”

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/859816.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号