2015-06-09 44 views
1

当rsync的使用与詹金斯作为在CentOS 6.4执行shell命令,它失败:为什么rsync的失败,詹金斯

[workspace] $ /bin/sh -xe /tmp/hudson3424899639384884888.sh 
+ rsync -av /var/lib/jenkins/jobs/myjob/workspace/target/classes/ [email protected]:/home/myuser/test 
rsync: Failed to exec ssh: Permission denied (13) 
rsync error: error in IPC code (code 14) at pipe.c(84) [sender=3.0.6] 
rsync: connection unexpectedly closed (0 bytes received so far) [sender] 
rsync error: error in IPC code (code 14) at io.c(600) [sender=3.0.6] 

然而,在命令行工作:

su jenkins 
rsync -av /var/lib/jenkins/jobs/myjob/workspace/target/classes/ [email protected]:/home/myuser/test 
sending incremental file list 

sent 17875 bytes received 83 bytes 3990.67 bytes/sec 
total size is 1981027 speedup is 110.31 

什么都有为了让它在詹金斯工作也要做?

+0

你有ssh密钥复制到远程机器吗?当你从命令行执行它时,你是否必须键入你的用户名和密码? – davidrv87

+0

ssh密钥在远程机器上,当我从命令行执行时,我不必键入我的用户名和密码。 – miloxe

回答

0

问题出在安装在CentOS上的SElinux上,因为某些原因阻塞了rsync的ssh。

这里是在/ var/log/messages中的线,其表示,SSH被封锁:

Jun 12 13:45:59 myserver kernel: type=1400 audit(1434109559.911:33346): avc: denied { execute } for pid=11862 comm="rsync" name="ssh" dev=dm-1 ino=11931741 scontext=unconfined_u:system_r:rsync_t:s0 tcontext=system_u:object_r:ssh_exec_t:s0 tclass=file 

在我们的服务器上,现在我们禁用SELinux的,妥善的解决方案是创建自定义的策略模块(1

0

我有类似的问题。

在我来说,詹金斯并没有执行与预期用户的rsync(詹金斯),但与另一个(在我的情况的JBoss) 加入“whoami”的脚本,并使用SSH详细:

rsync -e "ssh -v" ....... 

帮助发现问题。