我正在尝试通过 java 程序在远程服务器上运行命令。部分代码如下:
Process backUp = Runtime.getRuntime().exec(cmd);
BufferedReader stdInput = new BufferedReader(new InputStreamReader(backUp.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(backUp.getErrorStream()));
cmd 字符串包含:
sudo mysqldump --host=localhost --no-data --user=root --password=*******
lbs company > /home/ubuntu/michael/***************/lbs.company.sql
我知道我的问题是“>”用于 shell 解释的命令,这些命令不适用于 runtime.exec。如何格式化 mysqldump 命令来解决这个问题?谢谢。
最佳答案
您可以使用--result-file,而不是通过“">”重定向输出。指定 mysqldump 的输出。所以
mysqldump --host=localhost --user=root --password=******* lbs company > /home/lbs.company.sql
变成了
mysqldump --host=localhost --user=root --password=******* --result-file=/home/lbs.company.sql lbs company
关于java - 没有 shell 解释的 mysqldump,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24941193/