Как сделать так, чтобы скрипт запускался в моем скрипте после того, как он подключился к серверу часов DC? - PullRequest
0 голосов
/ 01 июля 2018

Итак, у меня есть скрипт, для которого он предназначен:

  1. Запросить номер DC и номер таймера

  2. войти на сервер часов времени для DC, указанного выше

  3. После входа в систему предполагается запустить отдельный скрипт внутри моего скрипта, который обновляет номер часов, также указанный выше.

Моя проблема в том, что, как только я запускаю скрипт, он входит на сервер, как и предполагалось, запрашивает мой идентификатор пользователя, а затем я должен нажать «enter», когда после этого появляется «xterm». После этого сценарий обновления должен запускаться, но не запускается и находится в командной строке.

После того, как я выхожу с сервера, ТО затем он запускает скрипт обновления, но не работает, потому что скрипт обновления не существует в поле перехода.

Мой вопрос: после того, как скрипт войдет в систему на сервере, как я могу заставить его запускать скрипт на сервере часов, как я этого хочу? Спасибо.

Сценарий ниже:

#!/bin/bash -x
export LANG="C"

####
####
## This script is intended to speed up the process to setup timeclocks from DC tickets
## Created by Blake Smreker | b0s00dg | bsmreker@walmart.com
####
####

#Asks for DC number

echo "What is the four digit DC number?"

read DC         #User input

#Asks for Timeclock number

echo "What is the two digit Timeclock number?"

read TMC        #User input

#Defines naming convention of tna server

tnaserver="cs-tna.s0${DC}.us.wal-mart.com"

#creating variable to define the update script

tcupd="/u/applic/tna/shell/tc_software_update.sh tmc${TMC}.s0${DC}.us REFURBISHED"

#Logging in to the cs-tna package at the specified DC

/usr/bin/dzdo -u osedc /bin/ssh -qo PreferredAuthentications=publickey root@$tnaserver

echo "Preforming Timeclock update on Timeclock=$TMC, at DC=${DC}"

echo ""

echo "-----------------------------------------------------------------------------------------------------------------------------------------"

$tcupd #Runs update script

echo "-----------------------------------------------------------------------------------------------------------------------------------------"

echo ""

sleep 2

echo "If prompted to engage NOC due to Timeclock not being on the network, send the ticket to DC Networking"

echo ""

echo "OR"

echo ""

echo "If the script completed successfully, and the Timeclock was updated, you can now resolve the ticket"

1 Ответ

0 голосов
/ 01 июля 2018

Вы должны запустить команду внутри сеанса ssh, а не после нее:

echo "Preforming Timeclock update on Timeclock=$TMC, at DC=${DC}"

echo ""

echo "-----------------------------------------------------------------------------------------------------------------------------------------"

###### $tcupd #Runs update script
/usr/bin/dzdo -u osedc /bin/ssh -qo PreferredAuthentications=publickey root@$tnaserver /bin/bash -c /u/applic/tna/shell/tc_software_update.sh tmc${TMC}.s0${DC}.us REFURBISHED

echo "-----------------------------------------------------------------------------------------------------------------------------------------"

echo ""

sleep 2

echo "If prompted to engage NOC due to Timeclock not being on the network, send the ticket to DC Networking"

echo ""

echo "OR"

echo ""

echo "If the script completed successfully, and the Timeclock was updated, you can now resolve the ticket"

С man ssh Вы видите ssh [-46AaCfGgKkMNnqsTtVvXxYy] ....... destination [command]. Если [command] не указано, ssh запускает командные сценарии удаленного входа, например, xterm. Вы читаете больше здесь или здесь или просто просматриваете Google.
Вам нужно подумать, как и какую переменную среды вы хотите передать на удаленный компьютер, и помнить о том, как правильно включить переменные, чтобы они расширялись на вашем или на удаленном компьютере.

...