![]() |
|
Модераторы: powerfox, ZeeLax |
![]()
|
|
| Хоббит |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1263 Регистрация: 6.11.2005 Репутация: нет Всего: 1 |
Приветствую.
Такая задача. Есть локальный и глобальный сервер. Локальный в офисе, глобальный в интернете. На них находятся глобальная и локальная версии сайта. Некоторый сайт и база данных к нему. И там и там nix система. Есть доступ ssh, ftp, mysql. Необходимо сделать скрипт (на языке командной строки). Который будет заливать сайт с локального на глобальный, то есть 1. Делать tar архив из папки сайта, переданного в параметре на локальном сервере (tar czf ...) 2. По ftp или ssh (как лучше, не знаю) будет заливать архви на глобальный сервер 3. Заходить на ssh глобального сервера 4. Распаковывать архив (tar xzf ...) 5. На локальном комьютере делать дамп базы 6. Заливать базу на глобальный сервер 7. Выполнять дамп базы на глобальном сервере. С написанием скриптов под shell познакомился только сегодня. Так что у меня такие вопросы Где хранить файл или фалы в которых будут лежать реквизиты доступа, как их лучше организовать? (К примеру, положить где то файл имя_сайта.pwd и определить его формат) Как залить файлы, через ssh или ftp.. какой командой? Можно ли из шелла сделать дамп базы данных? (Что исполнить можно, я знаю, а вот наоборот) Как зайти на ssh глобального сервера из этого скрипта? |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 113 Всего: 317 |
если не хотите огрести проблем в дальнейшем - сейчас самый лучший момент познакомиться с документацией программы ssh ( с ней можно и переливать файлы и запускать удаленно команды ) и синтаксисом bash ( для автоматизации процесса: скриптов ) удачи. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| Хоббит |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1263 Регистрация: 6.11.2005 Репутация: нет Всего: 1 |
:( времени мало. Хотел идеи найти, потом самому доработать. Просто читать с нуля горы документации, довольно нудной не охота.
|
|||
|
||||
| ZeeLax |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4388 Регистрация: 20.8.2006 Где: Алма-Ата Репутация: 26 Всего: 88 |
Хоббит, тогда в гугл. Потому, что если вы знаете, как делать в командной строке дамп базы и архивировать файлы - оформить это в скрипт для вас не составит труда. Ну а
Добавлено через 17 секунд Хоббит, тогда в гугл. Потому, что если вы знаете, как делать в командной строке дамп базы и архивировать файлы - оформить это в скрипт для вас не составит труда. Ну а
-------------------- Utility is when you have one telephone, luxury is when you have two, opulence is when you have three — and paradise is when you have none. — Doug Larson |
||||
|
|||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 113 Всего: 317 |
идеи вам дали - копайте ssh. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: нет Всего: 17 |
Я полагаю, вам нужно для начала сделать возможность заходить на удаленный комп без пароля.
Поправьте, если я где-то неправ: Для этого нужно создать RSA ключ командой ssh_keygen -t rsa на том компе, с которого вы хотите заходить без пароля и скопировать этот ключ в файл ~/.ssh/authorized_keys2 того компа, на КОТОРЫЙ вы хотите зайти. Потому что иначе все ваши запуски программ через SSH на удаленном компе будут требовать введения пароля, что полностью убивает идею скрипта как средства автоматизации. |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 113 Всего: 317 |
ключ нужно копировать публичный ( при команде ssh_keygen создаются 2 ключа - частный и публичный )
а частный ключ нужно сделать без пароля. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| Хоббит |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1263 Регистрация: 6.11.2005 Репутация: нет Всего: 1 |
В свободное время изучаю документацию.
На текущем этапе, процес выглядит так. (Копирование файлов данных хоста на сервер) 1. Заходим в директорию данных хоста cd $домашняя_директория/$имя_хоста 2. Архивируем данные tar -czf $имя_сайта.tar.gz /www 3. Соединяемся по ftp ftp $ftp_хост_сайта После чего сервер запрашивает имя и пароль. В ручную я их ввести могу, а как сделать это из скрипта? (Может отправить переменную содержащую имя ftp пользователя в стандартный поток), потом пароль. Или может как то можно одной командой соединиться с ftp сервером и войти (пробовал ftp user:pass@host, не работает, говорит, не верный хост) После соединение с ftp 4. Закачиваем файл архива put $имя_сайта.tar.gz $имя_хоста_в_интернете 5. Отсоединяемся exit 6. Соединяемся по ssh ssh $ssh_хост_сайта После чего сервер пишет. The authenticity of host '****** (*.*.*.*)' can't be established. DSA key fingerprint is *:*:*:*:*:*:*:*:*:*:*:*:*:*:*:*. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'u72803.ssh.masterhost.ru' (DSA) to the list of known hosts. Password: Опять же. Как избавиться от первого вопроса? И от ввода пароля. 7. Далее выполняем команду на глобальном сервере cd $имя_хоста_в_интернете tar -xzf $имя_сайта.tar.gz 8. Отсоединяемся exit Подведу итог. 1. Как вводить пароли для ssh и ftp из скрипта? Как вариант создать файлы ключей, если это единственный способ, то расскажите подробней о нем. 2. Где хранить и как загружать переменные $ftp_хост_сайта и.т.д. Как вариант в определенной директории положить файл $имя_сайта.var В нем определить все переменные в виде имя = значения. Потом из скрипта как то этот файл выполнить? Так можно? |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 14 Всего: 162 |
насколько я помню, man ssh_agent |
|||
|
||||
| ZeeLax |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4388 Регистрация: 20.8.2006 Где: Алма-Ата Репутация: 26 Всего: 88 |
Хоббит, вам уже рассказали, как избежать ввода пароля.
-------------------- Utility is when you have one telephone, luxury is when you have two, opulence is when you have three — and paradise is when you have none. — Doug Larson |
|||
|
||||
| bilbobagginz |
|
||||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 113 Всего: 317 |
всё что вы описали можно делать через sftp/scp (часть ssh), вас же попросили почитать документацию пакета SSH.
копирование файла на удаленный хост:
если можете работать безпарольно ( т.е. на основе ключей ), то это всё с легкостью вставляется в скрипт. -------------------- Я ещё не демон. Я только учусь. |
||||
|
|||||
| Хоббит |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1263 Регистрация: 6.11.2005 Репутация: нет Всего: 1 |
Я не могу ничего записать в директорию ~/.ssh глобального сервера. Это сервер хостера. Я так понял, что пароли мне придется хранить у себя и подставлять их в скрипт по мере надобности. Буду разбираться дальше. |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 113 Всего: 317 |
свяжитесь с хостером, скорее всего это одна из предосторожностей, чтобы вы/ваши программы автоматически не могли разрешать безпарольный логин без ведома хостера. скажите у вас есть публичный ключ, который надо добавить. удачи. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| Хоббит |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1263 Регистрация: 6.11.2005 Репутация: нет Всего: 1 |
Разобрался с этим вопросом, да и с другими.
Создал ключи, скопировал публичный себе не сервер. Теперь делаю ssh -I /usr/key/id_rsa user host.ru А он в ответ no support for smartcards Password: И ждет пароля |
|||
|
||||
| ZeeLax |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4388 Регистрация: 20.8.2006 Где: Алма-Ата Репутация: 26 Всего: 88 |
-------------------- Utility is when you have one telephone, luxury is when you have two, opulence is when you have three — and paradise is when you have none. — Doug Larson |
|||
|
||||
![]()
|
| Правила форума "Linux/UNIX: Oбщие вопросы" | |
|
|
В тему здесь вопросы общие - не привязанные к определенному ПО или дистрибутиву BSD/Linux/UNIX.
За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу). В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим. Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | *NIX системы: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |