网上查了好多资料 感觉也没怎么看明白 哭晕在厕所 我这智商是不是得转产品去了额。。。
主要是因为写了好几个版本 最后把能用的都改瞎了 看来还得再写几个别的 总结总结才好
总之 注意几点:
1、expect代码块里面末尾需要写
interact(但是我写了这句话不太好使 可能是因为有EOF的原因?)
或
send exit\r
expect eof
2、expect代码块中像简单的send ls\r这种直接写就好了,遇到比较复杂的awk命令得用{}阔起来,$需要转义一下。。。
{}:保留所有字符原有的意思,而不做解释,类似于shell中的单引号。
下面是最近写的查看n个服务器上的nginx log文件,然后统计每秒钟访问量最大的10个。。。awk命令用的也比较low。。。
#!/bin/sh
funcA() {
expect << EOF
set timeout 100
spawn ssh username@$server
expect password
send $pass
send {cat /var/log/nginx-access.log-20180714 | a