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

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Скрипт размещения сайта. 
V
    Опции темы
Хоббит
Дата 29.9.2007, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 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 глобального сервера из этого скрипта?
PM MAIL   Вверх
bilbobagginz
Дата 29.9.2007, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

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



Цитата

С написанием скриптов под shell познакомился только сегодня. Так что у меня такие вопросы
Где хранить файл или фалы в которых будут лежать реквизиты доступа, как их лучше организовать?
(К примеру, положить где то файл имя_сайта.pwd и определить его формат)

если не хотите огрести проблем в дальнейшем - сейчас самый лучший момент познакомиться с  документацией программы ssh ( с ней можно и переливать файлы и запускать удаленно команды ) и синтаксисом bash ( для автоматизации процесса: скриптов )

удачи.



--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
Хоббит
Дата 29.9.2007, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1263
Регистрация: 6.11.2005

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



:( времени мало. Хотел идеи найти, потом самому доработать. Просто читать с нуля горы документации, довольно нудной не охота.
PM MAIL   Вверх
ZeeLax
Дата 29.9.2007, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 4388
Регистрация: 20.8.2006
Где: Алма-Ата

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



Хоббит, тогда в гугл. Потому, что если вы знаете, как делать в командной строке дамп базы и архивировать файлы - оформить это в скрипт для вас не составит труда. Ну а
Код

man ssh
 во многих случаях достаточно.

Добавлено через 17 секунд
Хоббит, тогда в гугл. Потому, что если вы знаете, как делать в командной строке дамп базы и архивировать файлы - оформить это в скрипт для вас не составит труда. Ну а
Код

man ssh
 во многих случаях достаточно.


--------------------
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
PM MAIL WWW ICQ Skype Jabber   Вверх
bilbobagginz
Дата 29.9.2007, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

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



Цитата

Хотел идеи найти, потом самому доработать.

идеи вам дали - копайте ssh.




--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
comcon1
Дата 29.9.2007, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Я полагаю, вам нужно для начала сделать возможность заходить на удаленный комп без пароля. 
Поправьте, если я где-то неправ:
Для этого нужно создать RSA ключ командой ssh_keygen -t rsa на том компе, с которого вы хотите заходить без пароля и скопировать этот ключ в файл ~/.ssh/authorized_keys2 того компа, на КОТОРЫЙ вы хотите зайти. Потому что иначе все ваши запуски программ через SSH на удаленном компе будут требовать введения пароля, что полностью убивает идею скрипта как средства автоматизации.


--------------------
PM MAIL   Вверх
bilbobagginz
Дата 30.9.2007, 01:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

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



ключ нужно копировать публичный ( при команде ssh_keygen создаются 2 ключа - частный и публичный )
а частный ключ нужно сделать без пароля.



--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
Хоббит
Дата 1.10.2007, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 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
В нем определить все переменные в виде имя = значения.
Потом из скрипта как то этот файл выполнить?
Так можно?
PM MAIL   Вверх
JackYF
Дата 1.10.2007, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

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



Цитата(Хоббит @  1.10.2007,  13:46 Найти цитируемый пост)
Как вводить пароли для ssh и ftp из скрипта?

насколько я помню, man ssh_agent


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
ZeeLax
Дата 1.10.2007, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 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
PM MAIL WWW ICQ Skype Jabber   Вверх
bilbobagginz
Дата 1.10.2007, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

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



всё что вы описали можно делать через sftp/scp (часть ssh), вас же попросили почитать документацию пакета SSH.
Цитата

3. Соединяемся по ftp
ftp $ftp_хост_сайта

После чего сервер запрашивает имя и пароль.
В ручную я их ввести могу, а как сделать это из скрипта? (Может отправить переменную содержащую имя ftp пользователя в стандартный поток), потом пароль. Или может как то можно одной командой соединиться с ftp сервером и войти (пробовал ftp user:pass@host, не работает, говорит, не верный хост)

После соединение с ftp
4. Закачиваем файл архива
put $имя_сайта.tar.gz $имя_хоста_в_интернете

5. Отсоединяемся
exit


копирование файла на удаленный хост:
Код

scp myfile.tar.gz user@server:/path/to/target

если можете работать безпарольно ( т.е. на основе ключей ), то это всё с легкостью вставляется в скрипт.





--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
Хоббит
Дата 1.10.2007, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1263
Регистрация: 6.11.2005

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



Цитата(comcon1 @ 29.9.2007,  18:47)
Я полагаю, вам нужно для начала сделать возможность заходить на удаленный комп без пароля. 
Поправьте, если я где-то неправ:
Для этого нужно создать RSA ключ командой ssh_keygen -t rsa на том компе, с которого вы хотите заходить без пароля и скопировать этот ключ в файл ~/.ssh/authorized_keys2 того компа, на КОТОРЫЙ вы хотите зайти. Потому что иначе все ваши запуски программ через SSH на удаленном компе будут требовать введения пароля, что полностью убивает идею скрипта как средства автоматизации.

Я не могу ничего записать в директорию ~/.ssh глобального сервера. Это сервер хостера.
Я так понял, что пароли мне придется хранить у себя и подставлять их в скрипт по мере надобности.

Буду разбираться дальше.
PM MAIL   Вверх
bilbobagginz
Дата 1.10.2007, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

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



Цитата(Хоббит @  1.10.2007,  16:44 Найти цитируемый пост)
Я не могу ничего записать в директорию ~/.ssh глобального сервера. Это сервер хостера.

свяжитесь с хостером, скорее всего это одна из предосторожностей, чтобы вы/ваши программы автоматически не могли разрешать безпарольный логин без ведома хостера. 
скажите у вас есть публичный ключ, который надо добавить.

удачи.




--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
Хоббит
Дата 2.10.2007, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1263
Регистрация: 6.11.2005

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



Разобрался с этим вопросом, да и с другими.
Создал ключи, скопировал публичный себе не сервер.
Теперь делаю
ssh -I /usr/key/id_rsa user host.ru

А он в ответ
no support for smartcards
Password:

И ждет пароля
PM MAIL   Вверх
ZeeLax
Дата 2.10.2007, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 4388
Регистрация: 20.8.2006
Где: Алма-Ата

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



Код

man ssh
внимательно читали?


--------------------
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
PM MAIL WWW ICQ Skype Jabber   Вверх
Страницы: (3) Все [1] 2 3 
Закрытая темаСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Oбщие вопросы"
nickless
Imple
nerezus

В тему здесь вопросы общие - не привязанные к определенному ПО или дистрибутиву BSD/Linux/UNIX.
Например вопросы о выборе ОС для определенных задач (но если Вы просто хотите узнать "Какой дистрибутив лучше", то для этого есть Клуб юнуксоидов).
Общие вопросы по shell-программированию тоже лучше задавать здесь.


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

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


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


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

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


 




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


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

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