java调用linux命令执行rsync同步

谢峰华 发布于 2013/06/14 19:29
阅读 4K+
收藏 0

一个java项目部署在linux服务器,程序里需要调用linux命令在执行rsync的远程同步功能(这里用到的是把本地文件同步到远程服务器中),我在java类里面打印了这条命令,直接拿到linux ssh里面执行时可以的,但是在java里面:

Process process;

process = Runtime.getRuntime().exec(cmd)执行却不可以,

process.getInputStream()的打印信息:[sender] _exit_cleanup(code=1, file=main.c, line=1214): about to call exit(1)

process.getErrorStream()的打印信息:1.Unexpected remote arg: root@172.19.100.211::test/25


                                                   2.rsync error: syntax or usage error (code 1) at main.c(1214) [sender=3.0.9]

补充命令cmd为:/opt/rsync/bin/rsync -avvv --delete /test/tomcat/mpserver-8888/webapps/mp-server-1.7.1.0/gameupload/gameupload//25/9 dzm@172.25.100.166::toos/25 --password-file=/opt/rsync/passlist/dzmrsync.scrt

请帮忙分析一下,是否可能是需要什么权限(java调用的话).




加载中
0
谢峰华
问题为命令写法的区别,虽然此命令在ssh可以使用,但是用java去调用的话得是这样:/opt/rsync/bin/rsync -avvv  --password-file=/opt/rsync/passlist/dzmrsync.scrt --delete /test/tomcat/mpserver-8888/webapps/mp-server-1.7.1.0/gameupload/gameupload//25/9 dzm@172.25.100.166::toos/25 即所有的opition得全部卸载前面
返回顶部
顶部