基于Powershell SSH(POSH)的MYSQLDUMP

时间:2018-11-27 10:39:44

标签: mysql bash powershell ssh

我现在正为此努力了一天。基本上,我想使用每天在Windows计算机上运行的powershell脚本在我们的Web空间上备份MySQL数据库。

当我使用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上的Timeout之类的操作,但是什么都没做。

我无法在远程服务器上做诸如克朗之类的事情,它只是功能有限的Web空间。另外,启动bash脚本不起作用,我无权在远程服务器上执行脚本。

1 个答案:

答案 0 :(得分:0)

如果您特别需要有关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

以这种方式告诉我们。

希望这会有所帮助。