1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-09-08 10:32:09 +03:00
Files
mariadb-columnstore-engine/oam/install_scripts/patch_installer.sh
2016-01-06 14:08:59 -06:00

70 lines
2.1 KiB
Bash
Executable File

#!/usr/bin/expect
#
# $Id: patch_installer.sh 421 2007-04-05 15:46:55Z dhill $
#
# Install Software Patch on Module
# Argument 1 - Remote Module Name
# Argument 2 - Remote Server Host Name or IP address
# Argument 3 - Root Password of remote server
# Argument 4 - Patch Directory Location
# Argument 5 - Install Directory Location
# Argument 6 - Software File being installed
# Argument 7 - Debug flag 1 for on, 0 for off
set timeout 20
set MODULE [lindex $argv 0]
set SERVER [lindex $argv 1]
set PASSWORD [lindex $argv 2]
set PATCHLOCATION [lindex $argv 3]
set INSTALLLOCATION [lindex $argv 4]
set FILE [lindex $argv 5]
set DEBUG [lindex $argv 6]
set USERNAME "root"
set UNM [lindex $argv 7]
if { $UNM != "" } {
set USERNAME $UNM
}
log_user $DEBUG
spawn -noecho /bin/bash
#
# mv file being install
#
send_user "Backup Current File on Module"
expect -re "# "
send "ssh $USERNAME@$SERVER 'mv $INSTALLLOCATION$FILE $INSTALLLOCATION$FILE'.patchSave''\n"
# accept the remote host fingerprint (assuming never logged in before)
expect -re "service not known" { send_user " FAILED: Invalid Host\n" ; exit }
expect -re "authenticity" { send "yes\n" }
expect -re "word: "
# password for ssh
send "$PASSWORD\n"
# check return
expect {
-re "# " { send_user " DONE" }
-re "Permission denied" { send_user " FAILED: Invalid password\n" } exit;
-re "mv" { send_user " FAILED: copy filed\n" ; exit}
}
send_user "\n"
#
# send Patch File
#
send_user "Copy New Calpont Software File to Module"
expect -re "# "
send "scp $PATCHLOCATION$FILE $USERNAME@$SERVER:$INSTALLLOCATION$FILE\n"
expect -re "word: "
# send the password
send "$PASSWORD\n"
# check return
expect {
-re "100%" { send_user " DONE" }
-re "scp" { send_user " FAILED\n" ;
send_user "\n*** Installation Failed\n" ;
exit }
-re "Permission denied" { send_user " FAILED: Invalid password\n" ; exit }
-re "No such file or directory" { send_user " FAILED: Invalid package\n" ; exit }
}
send_user "\n"
send_user "\n!!!Patch Installation Successfully Completed!!!\n"
exit