Модераторы: powerfox, ZeeLax
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Зависает скрипт 
:(
    Опции темы
NZero
Дата 24.11.2016, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 358
Регистрация: 28.4.2010
Где: Москва

Репутация: нет
Всего: нет



Написал скрипт проверки структуры БД и если БД корректная, тогда выполняется rsync на удаленную машину

#!/bin/bash
 
Код

source="/var/db/segment/sv-abonents/"
target="/mnt/active/sov/sv-abonents/"
remote="10.10.11.30"
LOG="/var/log/db.log"
 
FILE_LIST=( $(find $target -type f -name "*.db") )
 
for ((i=0; i<${#FILE_LIST[*]}; i++))
do
        mod[$i]=$(stat -c%y ${FILE_LIST[$i]})
done
 
while true
do
 
        rsync -rugo $source $target
 
        #CHeck $remote
        ssh $remote ls -l $target &>/dev/null
        case "$?" in
                0)
                        for ((m=0; m<${#FILE_LIST[*]}; m++))
                        do
                                count=0
                                newmod=$(stat -c%y ${FILE_LIST[$m]})
 
                                if ! ssh $remote ls ${FILE_LIST[$m]} &>/dev/null || [[ "${mod[$m]}" != "$newmod" ]] ;then #Здесь зависает скрипт
                                        #Database check
                                        db_verify ${FILE_LIST[$m]} &>/dev/null
                                        statuserror=$?
                                        while [[ $statuserror != 0 ]]
                                        do
                                                echo $(date)" Файл базы данных ${FILE_LIST[$m]} поврежден. Перепроверяю!!!" >> $LOG
                                                #Replication repeat
                                                rsync -rugo $source $target >> $LOG
                                                #Verifycation repeat
                                                db_verify ${FILE_LIST[$m]} &>/dev/null
                                                statuserror=$?
                                                #if the database check was conducted 10 times stop check
                                                (( count++ ))
                                                if [[ $count == 10 ]] ;then
                                                        echo $(date)" Файл БД абонентов ${FILE_LIST[$m]} не корректный!!!" >> $LOG
                                                        break
                                                fi
                                                sleep 2
                                        done
                                        if [[ $count < 10 ]] ;then
                                                rsync -ugo ${FILE_LIST[$m]} $remote:$target
                                                echo $(date)" rsync ${FILE_LIST[$m]} -> $remote:$target" >> $LOG
                                        fi
                                fi
                                mod[$m]=$newmod
                        done
                ;;
                2)
                        echo $(date)" Directory $target on the $remote is not available" >> $LOG
                ;;
                255)
                        echo $(date)" $remote is not available" >> $LOG
        esac
        sleep 2
done


Так вот скрипт зависает при проверке наличия файла на удаленном машине

Код

if ! ssh $remote ls ${FILE_LIST[$m]} &>/dev/null || [[ "${mod[$m]}" != "$newmod" ]] ;then


ssh настроил, чтобы выполнять команды на удаленной машине.
Почему зависает скрипт? Есть идеи?
PM MAIL WWW ICQ   Вверх
Bulat
Дата 29.11.2016, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: нет
Всего: 57



Цитата(NZero @  24.11.2016,  15:02 Найти цитируемый пост)
Почему зависает скрипт? Есть идеи? 


В смысле зависает? А логи и т.п. что-то есть? Что говорит strace?


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
Lonley
Дата 18.8.2017, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 7.10.2003
Где: северные ворота М урманск

Репутация: нет
Всего: 4



ssh команду с рук запусти эту и посмотри как отработает


--------------------
Земную жизнь пройдя до половины,
Я очутился в сумрачном лесу,
Утратив правый путь во тьме долины.
Каков он был, о, как произнесу,
Тот дикий лес, дремучий и грозящий,
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Администрирование"
ZeeLax
Imple
nerezus
Этот форум предназначен для решения вопросов по администрации *n?x-систем, в частности по настройке сложных сетей и обслуживанию серверного оборудования.

  • Вы должны соблюдать правила форума.
  • Помните: какой вопрос, такой и ответ. Прежде чем задать вопрос прочитайте вот эту статью на форуме CIT.
  • Оскорблять запрещается.
  • Религиозные войны в Религиозных войнах.
  • Общение "просто так" в Клубе юнуксоидов. В отличие от многих других разделов, здесь разрешается сдержанно оффтопить и юморить в тему.

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).


В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.


Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование *NIX систем | Следующая тема »


 




[ Время генерации скрипта: 0.1139 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.