Я пишу сценарий для восстановления репликации Master-Slave на множестве серверов. Проиграл в синтаксисе Баш пытается присвоить локальную переменную с результатом дистанционно управлял командой подстановки с локальными значениями:Как присвоить локальную переменную удаленной команде результат в сценарии bash?
function doRemote() {
ssh s1.domain.com <<ENDSSH
mysql -u root -pXXX --execute="DROP DATABASE db; CREATE DATABASE db;"
mysql -u root -pXXX --database=db < $WORKDIR$FILENAME
sudo rm -rf /var/log/mysql/db-bin.*
mysql -u root -pXXX --execute="FLUSH LOGS;"
CURRENT_LOG=`mysql -u root -pXXX --execute="SHOW MASTER STATUS" -AN | awk '{print $1}'`
CURRENT_POS=`mysql -u root -pXXX --execute="SHOW MASTER STATUS" -AN | awk '{print $2}'`
# ...
ENDSSH
}
Две линии назначая CURRENT_ * переменные являются проблемой: команда mysql -u...
запускается на выполнение локально, а не удаленный сеанс.
Просьба проконсультироваться о том, как удаленно запускать его, назначая локальную переменную с помощью команды удаленного mysql.
сделал работу с остротами: 'CURRENT_LOG = $ (SSH s1.somain.com \t "MySQL -u корень -pXXX --execute = \" SHOW MASTER STATUS \» -AN | AWK ' {print \ $ 1} '")' – Serge