我现在正为此努力了一天。基本上,我想使用每天在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脚本不起作用,我无权在远程服务器上执行脚本。
答案 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
以这种方式告诉我们。
希望这会有所帮助。