Как я автоматически обновляю свою базу данных ночью

Извините за занимание много времени для ответа.

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

В настоящее время я несколько исключен из этого усилия, которое, к сожалению, мешает мне предоставлять больше подробную информацию. Так я пытающийся выяснить, где f'ing руководство идет, как сделать это так, я могу принять участие. В этой точке я даже не уверен, что называет, я должен гуглить и приезжать к администратору с предложениями новичка, не получил меня нигде.

1
задан 16 February 2015 в 12:18
3 ответа

Для разрешения входа в систему ssh рабочего сервера без Вас вводящий пароль, необходимо будет настроить некоторую неинтерактивную аутентификацию, если это не будет уже настроено.
http://www.walkernews.net/2008/06/06/how-to-setup-non-interactive-ssh-login/
http://troy.jdmz.net/rsync/index.html

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

1
ответ дан 4 December 2019 в 02:06
  • 1
    как я упомянул в другом ответе, я не мог найти /etc/crontab файл на Mac, это в другом месте? –  Russ Bradberry 8 May 2010 в 00:08
  • 2
    " crontab-e" должен, надо надеяться, создать один для Вас. –  Loopo 13 May 2010 в 18:56

Да - сценарий и расписание gzip/scp (или еще лучше, сделайте это rsync), часть с Вашего сервера. Если это - также MacOS, я не уверен в том, что подробные шаги сделать, которые являются, но это - схема того, что Вы хотели бы.

Затем если Вы знаете, что это будет всегда делаться определенным временем, просто планировать сценарий на Ваш компьютер к gunzip/dropdb/createdb/psql. Если это не всегда делается к тому же времени, то Вы могли сделать что-то воображение с проверкой состояния файла, измененные времена, и т.д.

С какими частями вышеупомянутого Вы не уверены в или чувствуете, что Вы нуждаетесь в большем количестве деталей? Действительно ли Вы плохо знакомы со сценариями или не уверены, как запланировать вещи с кроном или what-have-you?

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

0
ответ дан 4 December 2019 в 02:06
  • 1
    Я не уверен, делает ли пост-ГРЭС передачу журналов или зеркально отражающий исходно. я не мог найти crontab на Mac, мы используем crontabs на наших серверах, и это походило бы на идеальное решение, но я не уверен, как начать писать сценарий этого. –  Russ Bradberry 8 May 2010 в 00:05

Сначала необходимо будет настроить ssh сервер так, чтобы он принял ключи RSA вместо пароля. Это документируется в другом месте. Затем необходимо будет создать учетную запись, которую Вы планируете использовать, чтобы иметь соответствующий ключ DSA/RSA, который позволит той учетной записи автовходить в систему.

* ssh to the production server

Это не необходимо. Можно непосредственно выполнить команды на удаленном сервере с помощью -C опция. Например, следующие два шага Вы упоминаете...

* gzip our daily database dump file
* scp the gzipped dump file over to my computer

... выглядел бы подобным этому:

ssh user@some.server.net -C 'gzip dump > dump.gz'
scp user@some.server.net:/path/to/dump/dump.gz /path/to/destination/dump.gz

Поместите каждую команду, просто упомянутую, наряду с остальной частью команд, которые Вы вручную вводите в единственный файл. Команды должны быть в той же последовательности, что Вы обычно вводили бы их как. Мы назовем его dump-script.sh для этого примера. Измените владение и полномочия по мере необходимости, так, чтобы файл выполнился.

ПРЕДУПРЕЖДЕНИЕ:

Существует очень высокая возможность появления данных потерь, если Вы не выполняете проверку ошибок в своем сценарии. Пока Вы не добавляете обработку ошибок к сценарию, нет никакой гарантии, что это будет работать правильно 100% времени. С командой для отбрасывания базы данных довольно легко при правильных обстоятельствах освободить все данные по машине, которая получает дамп. Вы, скорее всего, захотите развернуть и украсить Ваш сценарий для обеспечения обнаружения ошибок, так, чтобы это было только DROP DATABASE и импортировать новые данные, когда передача будет успешна. Если Вы не довольны этим, не выполняйте его, ни создавайте crontab записи.

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

crontab -e

.... который должен получить Вас редактор. Создайте запись как это:

# Nightly Database Dump, at Midnight
0 0 * * * /path/to/my/dump-script.sh

... затем введите :wq в том порядке, и нажимают Enter (принимающий это vi Ваш текстовый редактор по умолчанию).


Лучшее решение: Если у Вас есть доступ к сети к базе данных PostgreSQL, почему не только выводят базу данных по сети с помощью удаленного соединения? Это намного более чисто, и может быть объединено с определенными сценариями для создания этого прямым 'каналом' данных от одного до другого.

0
ответ дан 4 December 2019 в 02:06

Теги

Похожие вопросы