實現遠端伺服器操作
阿新 • • 發佈:2020-09-16
#!/usr/bin/expect if [ $# -ne 2 ]; then echo "sh logSearch.sh serviceName "grep --color 'ERROR' service.log"" exit 1 fi declare -A serviceMap #依次新增需要的服務與對應的例項關係 serviceMap["serviceName"]="172.16.xx.xx,172.16.xx.xx" serviceName=$1 filter=$2 hostnameStr=${serviceMap[$serviceName]} hostnameArray=(${hostnameStr//,/ }) echo $hostnameStr for hostname in ${hostnameArray[@]} do echo $hostname $serviceName $filter expect login.exp $hostname $serviceName "${filter}" done
#!/usr/bin/expect set hostname [lindex $argv 0] set serviceName [lindex $argv 1] set command [lindex $argv 2]
# 非root使用者登入的話,這裡改為其他使用者 spawn ssh root@$hostname expect { "yes/no" {send "yes\r";} #{send "yes\r"; exp_continue;} "password:" {exp_send "password\r";} #這裡是你要輸入的密碼 } expect"#" send "cd /home/work/${serviceName}/orp/logs \r" #這裡需要調整為對應的服務路徑 #expect "#" send "${command}\r" #expect "#" send "exit\r" expect eof
CASE1:查詢日誌
sh logSearch.sh serviceName "grep --color 'ERROR' service.log"
CASE2:刪除日誌
sh logSearch.sh serviceName "rm service.log"
CASE3:查詢磁碟使用情況
sh logSearch.sh serviceName "df -h"