通过 Powershell SSH (POSH) 的 MYSQLDUMP

MYSQLDUMP over Powershell SSH (POSH)

我为此苦恼了一天。基本上,我想用一个 powershell 脚本在我们的网站空间上备份一个 MySQL 数据库,该脚本每天在我的 windows 计算机上 运行s。

当我使用 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 似乎对“>”运算符有问题,也许它没有足够的时间来执行,我不知道。还尝试了 Invoke-SSHCommand 上的超时之类的方法,但还没有任何效果。

我无法在远程服务器上执行诸如 crons 之类的操作,它只是一个功能有限的网站空间。同样启动 bash 脚本也不起作用,我无权在远程服务器上执行脚本。

如果您的需要专门针对 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

告诉我们结果是这样的。

希望对您有所帮助。