117 lines
3.1 KiB
Plaintext
Executable File
117 lines
3.1 KiB
Plaintext
Executable File
#!/usr/bin/expect -f
|
|
log_user 0
|
|
if { [llength $argv]==0 } {
|
|
puts "Hostname missing\n(all,tv,pc,serverhost,quiethost)"
|
|
exit 0
|
|
}
|
|
set color [lindex $argv 1]
|
|
if { $color == "-c" } {
|
|
set red "\033\[1;31m"
|
|
set blue "\033\[1;34m"
|
|
set norm "\033\[1;0m"
|
|
} else {
|
|
set red ""
|
|
set blue ""
|
|
set norm ""
|
|
}
|
|
set ret1 ""
|
|
array set host { 0 "serverhost" 1 "quiethost" }
|
|
array set user { 0 "lucas" 1 "lucas" }
|
|
array set port { 0 "3032" 1 "1504"}
|
|
set TARGET [lindex $argv 0]
|
|
set start 0
|
|
set end -1
|
|
if { ${TARGET} == "all" || ${TARGET} == "pc" } {
|
|
set start 0
|
|
set end 1
|
|
} elseif { ${TARGET} == "serverhost" } {
|
|
set start 0
|
|
set end 0
|
|
} elseif { ${TARGET} == "quiethost" } {
|
|
set start 1
|
|
set end 1
|
|
} else {
|
|
puts "Target ${TARGET} not known"
|
|
exit 0
|
|
}
|
|
#if {[string match 10.0.0.26* $env(SSH_CLIENT)]} {
|
|
# exec ssh -o ConnectTimeout=4 -p 1504 lucas@quiethost notify-send "Shutdown ${TARGET}"
|
|
#}
|
|
for {set i $start} {$i <= $end} {incr i 1} {
|
|
spawn ssh -o ConnectTimeout=4 -p $port($i) $user($i)@$host($i)
|
|
expect {
|
|
"Connection timed out" {
|
|
puts "$host($i)\t\[${red} FAIL ${norm}\]"
|
|
}
|
|
"$ " {
|
|
send "cat /home/lucas/.auto_shutdown\r"
|
|
expect "$ "
|
|
set ret $expect_out(buffer)
|
|
if {[string match *no* $ret ]} {
|
|
puts "Shutdown disabled! $host($i) Shutdown aborted!"
|
|
exit 0
|
|
} else {
|
|
puts "Shutdown enabled"
|
|
}
|
|
send "ps -elf | grep scripts/backup | grep -v grep\r"
|
|
expect "$ "
|
|
set ret $expect_out(buffer)
|
|
if {[string match *bash* $ret ]} {
|
|
puts "Backup in Progress! $host($i) Shutdown aborted!"
|
|
exit 0
|
|
} else {
|
|
puts "No Backup in Progress"
|
|
}
|
|
send "ps -elf | grep scripts/upgrade | grep -v grep\r"
|
|
expect "$ "
|
|
set ret $expect_out(buffer)
|
|
if {[string match *bash* $ret ]} {
|
|
puts "Update in Progress! $host($i) Shutdown aborted!"
|
|
exit 0
|
|
} else {
|
|
puts "No Update in Progress"
|
|
}
|
|
send "sudo /sbin/shutdown -P 1 +6\r"
|
|
#send "echo Shutdown\r"
|
|
expect "$ "
|
|
set ret $expect_out(buffer)
|
|
send "exit\r"
|
|
expect "$ "
|
|
set ret1 [exec echo $ret | grep -o "Shutdown scheduled"]
|
|
}
|
|
}
|
|
if {$ret1 == "Shutdown scheduled"} {
|
|
puts "$host($i)\t\[${blue} DOWN${norm} ]"
|
|
if {[string match 10.0.0.26* $env(SSH_CLIENT)]} {
|
|
exec ssh -o ConnectTimeout=4 -p 1504 lucas@quiethost notify-send "Shutdown SUCESSFULL for ${TARGET}"
|
|
}
|
|
} else {
|
|
puts "$host($i)\t\[${red} FAIL${norm} ]"
|
|
if {[string match 10.0.0.26* $env(SSH_CLIENT)]} {
|
|
exec ssh -o ConnectTimeout=4 -p 1504 lucas@quiethost notify-send "Shutdown FAILED for ${TARGET}"
|
|
}
|
|
}
|
|
}
|
|
if { ${TARGET} == "quiethost-win" } {
|
|
spawn ssh -o ConnectTimeout=6 -p 1504 LF@quiethost
|
|
expect {
|
|
"Connection timed out" {
|
|
puts "quiethost\t\[ ${red} FAIL ${norm} ]"
|
|
}
|
|
"LF>" {
|
|
send "shutdown /p\r"
|
|
expect {
|
|
"LF>Received disconnect" {
|
|
puts "quiethost\t\[${blue} DOWN${norm} ]"
|
|
send "exit\r"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if { ${TARGET} == "all" || ${TARGET} == "tv" } {
|
|
spawn bash /home/lucas/Raspberry/scripts/samsung_remote.sh OFF
|
|
puts "TV\t\[ ${blue} DOWN${norm} ]"
|
|
}
|
|
|