MYSQLDUMP через Powershell SSH (POSH)

Я борюсь с этим уже день. В основном я хочу сделать резервную копию базы данных MySQL в нашем веб-пространстве с помощью сценария PowerShell, который ежедневно запускается на моем компьютере с Windows.

Когда я использую Putty и ввожу следующую команду, создается файл резервной копии:

mysqldump XXXX --add-drop-table -u XXXX -p******* > backup/backup.sql

Но когда я запускаю его из PowerShell, он не создает файл резервной копии, даже когда я вызываю ту же самую команду:

$sshsession = New-SSHSession -ComputerName $sshserver -Credential $Creds -Force -Verbose
[string]$backupcmd = "mysqldump XXXX --add-drop-table -u XXXX -p******* > backup/backup.sql"
Write-Output $backupcmd
$backupdb = Invoke-SSHCommand -SSHSession $sshsession -Command "$backupcmd"

Похоже, у Posh-SSH проблемы с оператором ">", может не хватает времени на выполнение, не знаю. Также пробовал такие вещи, как Timeout на Invoke-SSHCommand, но пока ничего не работало.

Я не могу делать такие вещи, как crons на удаленном сервере, это просто веб-пространство с ограниченными функциями. Также не работает запуск bash-скрипта, у меня нет прав на выполнение скриптов на удаленном сервере.

Предположительно, Invoke-SSHCommand создает процесс непосредственно из указанной командной строки, не запуская его из оболочки. Однако оператор перенаправления - это встроенная функция оболочки. Попробуйте изменить командную строку на "cmd /c mysqldump ... > backup/backup.sql". В качестве альтернативы запустите удаленную команду через plink (инструмент пакетного выполнения из PuTTY люкс).

Ansgar Wiechers 27.11.2018 13:07

Извини, я новенький. Я хотел запустить запрос mysql с помощью sshcommand

vbhosale 05.12.2019 05:21
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
2
552
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вам нужна именно команда mysqldump, вы можете использовать параметр --result-file или просто параметр -r.

В этом случае это будет выглядеть так:

$ backupcmd = "mysqldump XXXX --add-drop-table -u XXXX -p ******* -r backup / backup.sql"

Я не проводил тесты, потому что в настоящее время у меня нет доступного POSH, но вы можете обратиться к документации: https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html#option_mysqldump_result-file

Расскажите нам, что так получилось.

Надеюсь это поможет.

Другие вопросы по теме