Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
 Аватар для Henior
79 / 79 / 15
Регистрация: 24.11.2010
Сообщений: 515
Записей в блоге: 14

Проверить bd на удаленном сервере

24.11.2016, 14:19. Показов 3475. Ответов 5
Метки нет (Все метки)

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

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/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
Так вот скрипт зависает при проверке наличия файла на удаленном машине

Bash
1
if ! ssh $remote ls ${FILE_LIST[$m]} &>/dev/null || [[ "${mod[$m]}" != "$newmod" ]] ;then
ssh настроил, чтобы выполнять команды на удаленной машине.
Почему зависает скрипт? Есть идеи?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.11.2016, 14:19
Ответы с готовыми решениями:

Проверить, запущен ли сеанс на удаленном сервере
С помощью какой сетевой утилиты можно проверить запущен ли сервис на удаленном сервере?

Как проверить существование файла на удаленном сервере?
Как проверить существование файла на удаленном сервере? конструкция: if (!file_exists('http://www.server.ru/price.zip')) {...}не...

как проверить наличие папки на удаленном сервере?
Подскажите как проверить наличие папки на удаленном сервере. Т.Е. мне нужно проверить существование папки folder по адресу...

5
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
24.11.2016, 17:08
Цитата Сообщение от Henior Посмотреть сообщение
if ! ssh $remote ls ${FILE_LIST[$m]} &>/dev/null || [[ "${mod[$m]}" != "$newmod" ]] ;then
Объясните всем и самому себе что это Вы "изобразили"?
0
 Аватар для Henior
79 / 79 / 15
Регистрация: 24.11.2010
Сообщений: 515
Записей в блоге: 14
25.11.2016, 09:55  [ТС]
Цитата Сообщение от Marinero Посмотреть сообщение
Объясните всем и самому себе что это Вы "изобразили"?
Это я изобразил строчку на которой скрипт зависает
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
25.11.2016, 10:38
Я про содержание. Что по Вашему должна делать эта строка, подробно.
0
 Аватар для Henior
79 / 79 / 15
Регистрация: 24.11.2010
Сообщений: 515
Записей в блоге: 14
25.11.2016, 11:40  [ТС]
модифицировал эту строчку. Теперь надеюсь стало понятно, что я хотел сделать?)
Bash
1
2
3
4
remote_file=$(ssh 10.10.11.30 find /mnt/active/sov/sv-abonents/ -type f -name calls.db)
if [[ $remote_file == "" ]]
...
fi
так вроде заработало!

Добавлено через 1 минуту
Самое интересное, что если выполняю в этой же сессии команду ps ax|grep script.sh, то скрипт стопится!
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
25.11.2016, 16:03
Bash
1
if [[ -z "$remote_file" ]]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.11.2016, 16:03
Помогаю со студенческими работами здесь

Принтер на удаленном сервере
Доброго времени суток. Не являюсь сисадмином, штатного так же нет, но произошла следующая проблема, требующая моего решения. Имеется 2...

ACL на удаленном сервере
Здравствуйте уважаемые форумчане киберфорума :) поискал в интернете прежде чем писать, но как такового метода не нашел. И так вопрос. С...

Авторизация на удалённом сервере
Я вот тут уже много нашел по своей проблеме, однако не всё... &lt;?php @ $file_http=fopen('http://www.docsearch.ru/index__php.html', 'r');...

Подключение к БД на удаленном сервере
Здравствуйте. До этого работал только с локальным сервером, поэтому готов уже ловить тапки, что могут полететь из-за моих идиотских...

Сайт на удаленном сервере
Добрый вечер! В общем, ситуация такая: у меня есть сервер под управлением Win XP (я знаю что это беспредел, но так его настроил...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru