mysql - Powershell SSH 上的 MYSQLDUMP (POSH)
问题描述
我正在为此苦苦挣扎一天。基本上,我想使用每天在我的 Windows 计算机上运行的 powershell 脚本在我们的网络空间上备份 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 之类的方法,但没有任何效果。
我不能在远程服务器上做诸如 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
告诉我们结果是这样的。
希望这可以帮助。
推荐阅读
- r - 在ggplot条形图中每个x轴内的多个条形之间添加显着性星号
- html - 元素的额外高度从何而来?
- google-smart-home - 如何为不同的项目使用相同的特征
- python - 使用 Pymoo 重新启动解决方案失败
- windows - Windows 10 C# 应用程序将无法运行说 CLRWrapper 缺少依赖项
- reactjs - React 16.4 基于 Promise 的条件渲染
- java - 为什么使用函数包装器捕获方法调用链的异常似乎比手动检查要昂贵得多?
- timer - 定时器溢出竞争条件
- java - 将 log4j jar 从 2.11.1 升级到 2.13.2 后 WAS9 JDK8 上的 IncompatibleClassChangeError
- python - Is there any way that I can get a full BeautifulSoup element?