2013-04-21 7 views
0

Я написал скрипт, который проверяет службу ntp. Он обновляет его, а затем запускает службу.Ошибка при запуске сценария оболочки

Есть три вещи, которые я делаю в приведенном ниже сценарии:

  1. Проверьте, если служба настроена правильно и что он работает. Затем, только выход из сценария. я ничего не делаю.
  2. Если служба настроена правильно, просто запустите службу и выйдите из сценария.
  3. Если услуга не настроена, остановите службу -> настройте сервис-> запуск службы.

Сценарии сценариев-1 и сценарий-3 выполнены выше. Но при тестировании сценария-2, он бросает ошибку ниже:

~ # ш ntpConfigure.sh ntpConfigure.sh: строка 3: NTP_CONF.BAK =/и т.д./ntp.conf.backup: не найдены пЪрд не работает /etc/init.d/ntpd нЕ работает сервер time.myCompany.com /etc/ntp.conf настроен служба настроена уже, начиная НТП службы начиная Ntpd ntpConfigure.sh: линия 77: эхо-сервис успешно запущен: не найдено

Любая идея, почему она бросает эту ошибку? Я проверил все, но мой код выглядит хорошо. Функциональность отлично работает с вышеуказанной ошибкой. Есть идеи?

код:

#VERIFY_NTPQ="/bin/ntpq -p" 
NTP_CONF="/etc/ntp.conf" 
NTP_CONF.BAK="/etc/ntp.conf.backup" 
NTPQ_SERVICE="/etc/init.d/ntpd" 
TOUCH="/bin/touch" 
GREP="/bin/grep" 
CP="/bin/cp" 
CHKCONFIG="/bin/chkconfig" 

$NTPQ_SERVICE status 
if [ $? -eq 0 ] 
then 
     isSERVICE_RUNNING=true 
     echo "$NTPQ_SERVICE is running" 
else 
     isSERVICE_RUNNING=false 
     echo "$NTPQ_SERVICE is NOT running" 
fi 

$TOUCH $NTP_CONF 
$GREP "server" $NTP_CONF 
if [ $? -eq 0 ] 
then 
     isSERVICE__CONFIGURED=true 
     echo "$NTP_CONF is configured" 
else 
     isSERVICE__CONFIGURED=false 
     echo "$NTP_CONF is NOT configured" 
fi 

if $isSERVICE_RUNNING && $isSERVICE__CONFIGURED 
then 
     echo "ntp service is already configured, nothing to do" 
     exit 0 
elif $isSERVICE__CONFIGURED 
then 
     echo "Service is configured already, starting ntp service" 
     $NTPQ_SERVICE start 
     if [ $? -eq 0 ] 
     then 
       echo" Service is started successfully" 
       exit 0 
     else 
       echo "Failed to start service" 
       exit 1 
     fi 
else 
     echo "$NTP_CONF not configured, Configuring $NTP_CONF" 
     echo "Stopping ntp service " 
     $NTPQ_SERVICE stop 
     echo "Taking backup of $NTP_CONF file to $NTP_CONF.BAK" 
     $CP $NTP_CONF $NTP_CONF.BAK 
     echo "Updating $NTP_CONF file with the required configurations" 
     echo "restrict 127.0.0.1" > $NTP_CONF 
     echo "restrict default kod nomodify notrap" >> $NTP_CONF 
     echo "driftfile /etc/ntp.drift" >> $NTP_CONF 
     echo "server time.myCompany.com" >> $NTP_CONF 
     if [ $? -eq 0 ] 
     then 
       echo "$NTP_CONF is configued properly" 
       echo "Starting ntp service" 
       $NTPQ_SERVICE start 
       if [ $? -eq 0 ] 
       then 
         echo "ntp service configured and started successfully" 
         echo "Configuring ntp service to start at bootup" 
         $CHKCONFIG ntpd on 
         exit 0 
       else 
         echo "Failed to start ntp service" 
         exit 1 
       fi 
     else 
       echo "Failed to configure ntp service" 
       exit 1 
     fi 
fi 
+0

'Эхо "'->' Эхо"' – blue

+1

Shell имена переменных могут содержать только алфавитно-цифровые и подчеркивания и не могут начинаться с числа. Переменная, которую вы пытаетесь назначить в строке 3, содержит точку, предотвращающую успешное выполнение задания (и любых будущих ссылок на него). – michaelb958

+0

Спасибо, Майкл за информацию. Я соответственно изменю свой сценарий. –

ответ

1

Вы mispelled команду: echo" должен быть echo " в строке 77.

+0

Большое спасибо. Это сработало. Как-то я пропустил его, и он даже заметил это. Еще раз спасибо, мой код работает сейчас. –

+0

Рад, что я могу помочь! Вы должны принять мой ответ и послушать совет michaelb в комментариях к вашему вопросу: D – blue