2014-02-19 4 views
0

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

Логика я написал это:

if(sybaseiq = active) 
    then 
    stop_iq 

else 
    start_iq ".cfg" ".db" 

Ниже приведен код, который я нашел на internet.But я не в состоянии понять, что они там делают. Пожалуйста, ответьте мне с объяснением.

isql -U${USERNAME} -P${PASSWORD} -S${SQL_SERVER} -w1000 << ! > ${LOG_FILE} 
    exit 
    ! 
    if [[ $? != 0 ]] 
    then 
     msg="`date` ${SQL_SERVER} problem. ${SQL_SERVER} on ${HOST} is down or cannot be accessed" 
    cat ${LOG_FILE}|/usr/bin/mailx -s "${msg}" ${SUPPORT} 
    } 
    exit 1 
    fi 

спасибо заранее

ответ

1

Сценарий довольно прямо вперед

Сначала скрипт записывает на сервер с помощью ISQL, перенаправив вывод в лог-файл. Если он способен подключиться, он выдает все команды между восклицательными знаками, которые в данном случае являются exit.

Далее инструкция if проверяет состояние ошибки последнего запуска команды $?. 0 указывает на отсутствие ошибки, что-либо еще указывает на ошибку. Поэтому, если ошибка не равна 0, создайте сообщение, затем отправьте это сообщение вместе с файлом журнала кому-то.

Вам нужно будет установить значения для $USERNAME, $PASSWORD, $SQL_SERVER, $LOG_FILE, $HOST and $SUPPORT где-нибудь в вашем скрипте.

Если вы не знакомы со сценариями оболочки, я бы порекомендовал вам немного прочитать. Достаточно легко войти, но они достаточно эффективны для управления системами * nix.

Смежные вопросы