PHP Script для копирования базы данных с одного сервера на другой - PullRequest
0 голосов
/ 22 октября 2019

У меня есть сценарий, в котором мне нужно ежедневно копировать производственную базу данных в мою базу данных разработчиков. Оба являются разными серверами. То, что я подумал написать cronjob, который будет делать вещи. Я написал скрипт php. Я подключаюсь к удаленному производственному серверу через sshpass, получаю его дамп и затем заполняю этот дамп.

exec("sshpass -p 'mypassword' ssh root@IP_ADDRESS:PORT");
exec("mysqldump -u root -p DB > production_dump.sql");
exec("mysql -u root -p test < production_dump.sql");

Но в первой строке выдается ошибка:

ssh: Could not resolve hostname IP_ADDRESS:PORT: Name or service not known

Я пробовал данное решение в интернете, но ни одно из них не сработало. Кто-нибудь может объяснить, пожалуйста, что я делаю не так?

1 Ответ

2 голосов
/ 22 октября 2019

Ваша команда не выполняется, потому что она не отформатирована правильно. Вам необходимо использовать один из следующих форматов:

sshpass -p 'mypassword' ssh root@IP_ADDRESS PORT
sshpass -p 'mypassword' ssh root@IP_ADDRESS -p PORT
sshpass -p 'mypassword' ssh ssh://root@IP_ADDRESS:PORT

Однако я не уверен, будет ли работать оставшаяся часть сценария, особенно если он начнет запрашивать пароль. Сценарий bash был бы подходящим вариантом.

...