Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
 Аватар для selik
3 / 3 / 0
Регистрация: 14.09.2010
Сообщений: 11

Передача данных между серверами

14.09.2010, 17:32. Показов 4631. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
здравствуйте. наобходима помощь в написнии скрипта, который бы забирал данные с одного сервера на другой. если выполнить команды вручную, то все работает, а вот в скрипте к сожалению нет. написанием скриптов занимаюсь впервые. заранее спасибо.

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
[#/bin/bash
 
PATH="/bin:/usr/bin:/usr/ccs/bin:/usr/xpg4/bin:/usr/sfw/bin:${PATH}"; export PATH;
TMPFILE=/tmp/ftp1.$$
TMP=/tmp/files1.$$
#trap 'rm -f ${TMP} ; exit' 0 1 2 3 15
remhost=192.168.10.243 
ftpflags="-i -n"
echo "user fggfg fggf" > ${TMP}
echo binary >> ${TMP}
echo cd /export/home/oracle/backup/logical/full/ >> ${TMP}
echo ls -rt >> ${TMP}
echo quit >> ${TMP}
#listing dir
ftp ${ftpflags} ${remhost} < ${TMP} >> ${TMP}
 
echo "user fggfg fggf" > ${TMPFILE}
echo binary >> ${TMPFILE}
echo cd /export/home/oracle/backup/logical/full/ >> ${TMPFILE}
#echo ls -rt >> ${TMPFILE}
echo lcd /home/reco/backup/ >> ${TMPFILE};
for i in `awk '{if(index($9,"11")!=0) print $9}' ${TMP}`
do
#if "$i" != "11"
#then 
echo get "$i" >> ${TMPFILE}
echo rename "$i" "${i:1}" >> ${TMPFILE}
#else
# continue
#fi
#echo $i >> ${TMPFILE}
done
echo quit >> ${TMPFILE}
ftp ${ftpflags} ${remhost} < ${TMPFILE} >> ${TMPFILE}
echo ${remhost} >> ${TMPFILE}]
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.09.2010, 17:32
Ответы с готовыми решениями:

Настройка ssh тунеля между двумя серверами
Есть сервер, пусть ип 8.8.8.8 есть сервер 2, пусть ип 9.9.9.9 нужно, при помощи scp копировать файлы с сервера 9.9.9.9 на сервер...

Организация сети ipv6 между серверами debian
Доброго времени суток! Столкнулся с такой задачей: Есть 4 виртуальных сервера Samba и 2 таких же gw схема подключения следующая: ...

Настройка локальной сети между двумя серверами через локальный порт.
Добрый день, Уважаемые Знатоки и Искушенные Повелители Линукса:) Буду очень признателен за помощь в данном вопросе, не судите строго, я не...

17
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
14.09.2010, 20:21
ты по-русски скажи чего должен делать твой скрипт
0
 Аватар для selik
3 / 3 / 0
Регистрация: 14.09.2010
Сообщений: 11
15.09.2010, 11:13  [ТС]
есть 2 сервера. на один из них еженедельно поступают данные. нужно забирать с этого сервера эти данные и отправлять их на другой. данные забираются по определенной маске (в данном примере это файлы имя которых начинается с "11"). для того что бы получать только новые данные, файл который уже пересылался переименовывается (возможно кто то может предложить другой путь определения того, пересылался файл или нет).
передача данных идет по ftp. помимо этого создается 2 файла, в один из которых (TMP=/tmp/files1.$$) записываются комнады необходимые для подключения к удаленному серверу (ftp ${ftpflags} ${remhost} < ${TMP} >> ${TMP}). соединение происходит. все данные и параметры передаются.
начиная с 17 строки происходят аналогичные действия, позволяющие забрать файлы с сервера. только вот в скрипте это уже не работает. все условия написанны правильно и работают, проверенно. может можно как то по другому без записи в файл огранизовать передачу параметров?
0
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
15.09.2010, 11:22
wget -r -N -l25 --timeout=10 ftp://$usr_name:$usr_pass@$srv_url/11*

Добавлено через 2 минуты
альтернативный вариант - монтировать фтп сервер в файловую систему
http://curlftpfs.sourceforge.net/
1
4 / 4 / 0
Регистрация: 01.07.2010
Сообщений: 88
16.09.2010, 16:03
Цитата Сообщение от dmkhn Посмотреть сообщение
wget -r -N -l25 --timeout=10 ftp://$usr_name:$usr_pass@$srv_url/11*

Добавлено через 2 минуты
альтернативный вариант - монтировать фтп сервер в файловую систему
http://curlftpfs.sourceforge.net/
А зачем timeout=10 ? Или это значение по умолчанию?

Я тоже реализовал передачу данных на другой сервер и тоже черз фтп. У меня это пока выгледит так:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#! /bin/bash
cd /
cd /home/videoserv/ 
tar -cf /home/test/8.tar 8
cd /home/test/
user=ХХХХХХ
passwd=ХХХХХХ
ftp -n ХХХХХХХХХХ <<script
user $user $passwd
binary
pass
mput 8.tar
quit
script
rm -r 8.tar
cd /home/videoserv/8/
rm -rf *
quit
А кстати может кто подскажет как реализовать докачку если произошол дисконект ? и ещё у меня почему то передача только до 12:00 идёт . А обьёмы большие не успевают иногда передоваться.

А можно ли за архивировать эти данные ? и есть ли доступ к 1вому серверу на который поступает информация ?
0
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
16.09.2010, 16:22
Цитата Сообщение от Apofis Посмотреть сообщение
А зачем timeout=10
на случай, если где-то "связь зависает"...
1
 Аватар для selik
3 / 3 / 0
Регистрация: 14.09.2010
Сообщений: 11
17.09.2010, 12:37  [ТС]
можно еще использовать rsync. достаточно удобно если файлы нужно просто передать с одного сервера на другой (в моем случае это подходит).
Bash
1
2
#!/bin/sh
rsync -rc -t -v -e ssh --rsync-path=/usr/local/bin/rsync --temp-dir=/tmp user@host:/export/home/oracle/backup/logical/full/ /home/reco/backup/
где
-e ssh - использовать SSH протокол в качестве транспорта
-t - сохранять время модификации; очень рекомендуется, если предполагается повторная пересылка
-r - рекурсивно
-c - для принятия решения о том пересылать файл или нет используется контрольная сумма (мне так больше понравилось)
–temp-dir=/tmp - каталог для временных файлов во время пересылки
--rsync-path=/usr/local/bin/rsync - путь к rsync на машине-источнике
ser@host:/export/home/oracle/backup/logical/full/ - пользователь@хост:Путь-к-каталогу-источнику
/home/reco/backup/ - путь куда сохранять

Есть один ньюанс, если в каталоге-источнике указать в конце слэш - то в каталоге назначения появится содержимое каталога-источника. Если же слэш не указывать - то в каталоге-приемнике появится копия каталога источника.

только вот данный скрипт запускается, отрабатывает, но ничего не копирует.... может кто знает почему? кстати копирую с solaris10 на Fedora4.
1
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
17.09.2010, 13:10
Цитата Сообщение от selik Посмотреть сообщение
ser@host:/export/home/oracle/backup/logical/full/ - пользователь@хост:Путь-к-каталогу-источнику
может тут не хватает протокола? (типа ftp, http и т.п.)..
1
4 / 4 / 0
Регистрация: 01.07.2010
Сообщений: 88
17.09.2010, 13:33
А можно пример как правильно синхронизировать файлы архива? (убунту--->виндовс сервер 2003)
допустим если хеш не совподает то докачать. А если всё совпадает то выйти из скрипта.
0
 Аватар для selik
3 / 3 / 0
Регистрация: 14.09.2010
Сообщений: 11
17.09.2010, 14:54  [ТС]
Цитата Сообщение от dmkhn Посмотреть сообщение
может тут не хватает протокола? (типа ftp, http и т.п.)..


-e ssh - есть указание протокола. причем явное.

вообще нижеприведенная команда выполняется успешно, вопрос в том как ее в скрипт правильно записать...
Bash
1
rsync -rc -t -v -e ssh --rsync-path=/usr/local/bin/rsync --temp-dir=/tmp user@host:/export/home/oracle/backup/logical/full/ /home/reco/backup/
0
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
17.09.2010, 15:06
Цитата Сообщение от Apofis Посмотреть сообщение
А можно пример как правильно синхронизировать файлы архива?
я делал вот такое - монтировал фтп сервер в файловую систему с помощью софта, находящегося по указанной ссылке:
http://curlftpfs.sourceforge.net/
это я проделывал с удаленным фтп-сервером.
если же все это в одной локальной сети, то просто монтировал сетевую шару в файловую систему
mount -t cifs $share_name $mount_point -o username=$user,password=$pass,iocharset= utf8,rw

а после того, как удаленная папка примонтирована, банальными средствами программы-архиватора производится обновление архива. например, у того же zip-а, добавление ключа -u

zip -y -u -r -9 $backup_file_name "$mount_point"/*
1
4 / 4 / 0
Регистрация: 01.07.2010
Сообщений: 88
17.09.2010, 15:14
Ftp сервер с широким каналом, но закрытого типа. То есть к нему нет доступа только есть учётка. логин пароль. и 500 гб пространства. Так что при монтировать не получится надо как то синхронизировать архив.
0
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
17.09.2010, 15:55
Цитата Сообщение от Apofis Посмотреть сообщение
Так что при монтировать не получится
почему? у меня прекрасно монтировалось командой
curlftpfs $srv_url $mnt_dir -o user=$usr_name:$usr_pass
1
4 / 4 / 0
Регистрация: 01.07.2010
Сообщений: 88
17.09.2010, 17:55
Извени просто не так понял. Спасибо, в понедельник попробую

Добавлено через 34 минуты
Поставил прогу что ты рекомендовал.
написал ка ты говорил но ругается пишет типа не найдена точка монтирования или же не существующая папка монтинорвания. я писал так /home/aleks/8
0
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
17.09.2010, 18:03
раз так ругается, значит папка /home/aleks/8 либо не существует либо же проблема с правами доступа на нее.
1
4 / 4 / 0
Регистрация: 01.07.2010
Сообщений: 88
20.09.2010, 16:15
Вроде всё проверил и прова и наличии папки. Всёравно не монтируется. Вот скрин
Миниатюры
Передача данных между серверами  
0
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
20.09.2010, 16:24
оно же вам пишет - mountpoint is not empty - точка монтирования непустая. То есть, монтировать нужно в папку, которую вы создали для этих целей. Держать в ней что-либо не нужно.

с другой стороны, оно вам предлагает, если так уж сильно хочется, то смонтировать туда, куда хочется, использовав в команде монтирования опцию nonempty
1
4 / 4 / 0
Регистрация: 01.07.2010
Сообщений: 88
20.09.2010, 17:45
Всё заработало ОГРОМНОЕ СПАСИБО!!! Чет с 8 я реально тупанул ну бывает...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.09.2010, 17:45
Помогаю со студенческими работами здесь

передача данных между серверами
принцип таков - при поступлении на сайт данных они посылаются на промежуточный сервер там обрабатываются а после эти данные посылаются на...

Передача данных между серверами
есть один сервер который формирует у себя данные в формате json есть второй сервер который должен эти данные принять вопрос: как это...

Передача больших массивов данных между серверами
Нужен совет по передаче данных между серверами на Windows. Не локалка, но везде белые IP. Файлы 20gb и больше, поэтому файлообмениики и...

Передача текстовых данных между двумя веб серверами
Привет друзья!) Вопрос у меня достаточно простой, однако я не смог найти нормального ответа на форуме, на эту тему. Речь идет о...

Передача пакетов между серверами
Доброго времени суток! По тз необходимо реализовать &quot;Хаб&quot;. Чтобы к этому хабу отправляли пакеты и сервера и клиенты, а хаб делал рассылку...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru