我试图通过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命令以解决此问题?感谢。
答案 0 :(得分:1)
您可以使用--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