SHELL 脚本
头部 是脚本解释器,不同的脚本有不同的解释器,如bash,还有expect脚本
#!/usr/bin/env bash
变量
home=/usr/local/apache-tomcat-8.0.53
字符拼接当前时间
log=hap-``date "+%Y-%m-%d"``.log
执行
exec $home/deploy-hdp.sh $home/upload/core.war
exec执行脚本需要是绝对路径,如果是相对路径,会报找不到对应的文件。exec执行会关闭之前的进程新开一个进程.
循环
for((i=0;i<90;i++))
do
sleep 2
tail -n 100 /cmcc/data1/tomcatLogs/${log}
done
while test commands
do
my commands
done
其他
…
tail -n 800 log/*.log |grep -A 200 "The following profiles are active"
打印关键词后面的200行
EXPECT脚本
#!/usr/bin/env expect
变量
set timeout 30
获取参数
set password [lindex $argv 0]
获取时间
set date [ clock format [ clock seconds ] -format "%Y-%m-%d" ]
执行命令
spawn scp hap@10.253.60.45
…
spawn ssh $host "tail -f /cmcc/data1/tomcatLogs/$log"
EXPECT & SEND
expect[空格]{
"condition-1":
send [空格]"command1"
expect[空格]{
send [空格]"command2"
send_error "error 1"
exit 1
}
}
expect eof
expect eof 与 spawn 相对应,表示结束。