expect “*]#” {send " echo “hostname: hostname
” \r"} //查看主机名
expect “*]#” {send “df -h\r”} //查看磁盘
expect “*]#” {send “df -h|awk 'BEGIN{OFS=”\t"}{if($5>11){print }}'\r"} //第五个参数大于11的数据
send “exit\r” //退出
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
再跑一次脚本即可ÿ