【发布时间】:2015-05-05 18:54:36
【问题描述】:
我有一个 ec2 实例,我从该实例远程登录到远程 EC2 服务器(作为 ec2 用户),我的应用程序托管在其 tomcat 服务器中。 tomcat 服务器会为这个特定的应用程序生成一个日志文件。
如果我删除日志文件 (test_app.log) 并使用 startup.sh 命令手动重新启动服务器,则会创建一个具有相同名称的新日志文件,但是当我尝试通过远程登录来做到这一点它不起作用。 tomcat 服务器正在重新启动(我已在浏览器上进行了验证),但未生成日志文件。
因为我想为我的所有应用程序运行一个单独的日志,所以我首先通过杀死它来停止 tomcat,然后我将 test_app.log 移动到带有时间戳的其他名称,然后重新启动服务器。
当我第一次使用自动脚本进行 ssh 时,一切都按上面的计划发生,但从下一次迭代开始,什么都没有发生。即使在使用 touch 之后,也不会创建新文件。
请注意,如果我手动完成整个过程,所有命令都可以正常运行并且一切正常。
ssh -i $Public_Key_Loc -tt $Remote_user@$PrivateIpSPL <<-ENDSSH
sudo su - spluser
kill -9 $(ps -elf | grep tomcat|cut -d ' ' -f6 | head -n 1)
mv /opt/tomcat/current/logs/spl/spl-test-tool/test_app.log /opt/tomcat/current/logs/spl/spl-test-tool/$(date "+%Y.%m.%d-%H.%M.%S").test_app.log
touch test_app.log
chown spluser:splgrp test_app.log
chmod 644 test_app.log
/opt/tomcat/current/bin/startup.sh
exit
exit
ENDSSH
【问题讨论】:
-
现在这是完全不可接受的,如果你愿意解释拒绝投票的原因......?这个问题不显示研究工作吗?在输入这么多细节之后,我是否需要添加更多细节?快点长大吧!
标签: java tomcat amazon-web-services ssh amazon-ec2