我在 apache tomcat6 服务器上运行的 amazon ec2 上有一个 java spring 应用程序。我需要在这个 amazon ec2 和另一台服务器之间复制文件。为此,我尝试使用 rysnc 。在终端中它可以工作。但是当我尝试使用我的脚本时它不起作用。我该如何解决这个问题?我在 apache tomcat6 服务器上运行它。任何帮助都非常感谢。我需要把 .ssh 文件放在哪里才能执行这个。
答案1
经过一番研究,我自己找到了答案。但我来不及在这里写下来。这可能会对其他人有所帮助
为了从 java spring 应用程序文件中执行 rsync 命令,首先我在我的 ec2 服务器和另一个云服务器之间设置自动 ssh 登录。为了创建它,我遵循了以下步骤
在亚马逊ec2服务器上,
ssh-keygen -t rsa
然后将授权密钥复制到云服务器
cat .ssh/id_rsa.pub | ssh <user>@<server ip> "cat >> ~/.ssh/authorized_keys"
或者我们可以使用
ssh-copy-id <user>@<ip>
然后尝试登录服务器
ssh <user>@<server ip>
这次它不会要求输入密码登录
下一步是我必须将 .ssh 放在 /usr/share/tomcat6 中
sudo cp -r /home/<user_name>/.ssh/ /usr/share/tomcat6
sudo chown -R tomcat6:tomcat6 .ssh/
sudo /etc/init.d/tomcat6 restart
然后尝试执行包含 rsync 命令的文件。成功了 :)