Назад | Перейти на главную страницу

ssh удаленная команда-фу

Я пытаюсь сделать удаленное резервное копирование через брандмауэр. Разбить это на отдельный сценарий, который вызывается в crontab, действительно не проблема, но это совсем не весело! Что я пытаюсь сделать с:

pg_dump -U my_user my_database | ssh me@myserver "> backup.sql"

заключается в резервном копировании базы данных postgresql (выгружает все на стандартный вывод) и перенаправлении на удаленную команду ssh, которая просто помещает ее в backup.sql.

К сожалению, все, что я получаю, - это пустой файл backup.sql на моем удаленном компьютере. Перенаправление - не моя сильная сторона, поэтому будем благодарны за любые советы. Спасибо.

Еще лучше: сжать его перед SSH:

pg_dump -U my_user my_database | gzip -c | ssh me@myserver "cat > backup.sql.gz"

Это экономит загрузку полосы пропускания с помощью дампа SQL.

На самом деле я делаю это наоборот. У меня есть журнал резервного копирования на сервере для резервного копирования. Это означает, что если какой-либо один сервер (кроме резервного сервера, который имеет серьезную фашистскую безопасность) был скомпрометирован на корневом уровне, резервный сервер - и, следовательно, все другие серверы! - по умолчанию не компрометируется.

Моя команда для удаленного создания дампа SQL немного отличается:

ssh <server> "pg_dump -U <user> <database> | gzip -c" > /backups/sqlbackup.sql.gz

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

пытаться

pg_dump -U my_user my_database | ssh me@myserver "cat > backup.sql"