[实践OK]Shell 脚本内的文件引用写法及两机房各抽一台机器出来隔15秒左右启动,可用在先后关停启动java进程上,实现对外持续服务。
Shell 也可以包含外部脚本, 可以封装一些公共的代码为单独文件,需要用的时候直接引用。
方法有两种, 分别是.和source, 如下:
1)我看在centos6.X里面的/etc/init.d/nginx就是用的点空格引入的。
2)无论是source还是点空格最好是用绝对路径:
放在同一个目录下,所以source ./import.sh 引用看起来没有问题, 但是如果在上一层目录运行脚本时会出错,如下:
$ sh shell_testing/test.sh
shell_testing/test.sh: line 4: ./import.sh: No such file or directory
实践如下,相当于shell去包含./import.sh是从运行目录去包含的,去了上层目录就认为./import.sh是在上一层目录下面,所以得用绝对路径:
所以引用的话最好使用绝对路径, 其实也就是test.sh脚本的绝对路径,因为这两个脚本放在同一个目录下。
import.sh
test.sh
$./test.sh
LiLei
EOF
Your name is LiLei
注意:
1.两个点之间,有空格,千万注意.
2.两个脚本不在同一目录,要用绝对路径
3.为简单起见,通常用第一种方法
摘自链接:https://www.jianshu.com/p/cc4dda1fb77f
在两个机房里这两个VIP下面有很多的服务,如果用ansible一次性给干死了,但是这个java的进程要启动得15秒,也就出现了集体同时在启动中,没有对外服务,怎么办?只有先后启动,这时就有用了,两个机房的一些机器15秒后启动,一些机器立即启动,错开启动的好处是,两个机房能同时对外提供服务:
/data/www/ai.xxx.xxxx.com/server/start.sh
/data/www/ai.xxx.xxxx.com/server/stop.sh
延后启动的shell文件引用:
/data/www/ai.xxx.xxxx.com/bin/delayRestart.sh
直接启动的shell文件无 sleep 15:
还是相对路径问题,得修改这个jar包路径为绝对路径:
/data/www/ai.xxx.xxxx.com/bin/output.log
Error: Unable to access jarfile eladmin-system-3.1.jar
实践成功部署如下:
ansible ai_web -a'ps -eo pid,lstart,etime,cmd | grep eladmin-system|grep -v grep'
10.73.234.136 | CHANGED | rc=0 >>
24238 Thu May 21 14:21:03 2020 02:28 java -jar -Xms1024m -Xmx4096m -XX:MetaspaceSize=1024M -XX:MaxMetaspaceSize=4096m /data/www/ai.xxx.xxxx.com/server/eladmin-system-3.1.jar --spring.profiles.active=prod
10.73.234.137 | CHANGED | rc=0 >>
34282 Thu May 21 14:21:19 2020 02:12 java -jar -Xms1024m -Xmx4096m -XX:MetaspaceSize=1024M -XX:MaxMetaspaceSize=4096m /data/www/ai.xxx.xxxx.com/server/eladmin-system-3.1.jar --spring.profiles.active=prod
10.169.70.72 | CHANGED | rc=0 >>
52665 Thu May 21 14:21:19 2020 02:12 java -jar -Xms1024m -Xmx4096m -XX:MetaspaceSize=1024M -XX:MaxMetaspaceSize=4096m /data/www/ai.xxx.xxxx.com/server/eladmin-system-3.1.jar --spring.profiles.active=prod
10.169.70.71 | CHANGED | rc=0 >>
31033 Thu May 21 14:21:04 2020 02:27 java -jar -Xms1024m -Xmx4096m -XX:MetaspaceSize=1024M -XX:MaxMetaspaceSize=4096m /data/www/ai.xxx.xxxx.com/server/eladmin-system-3.1.jar --spring.profiles.active=prod
方法有两种, 分别是.和source, 如下:
1)我看在centos6.X里面的/etc/init.d/nginx就是用的点空格引入的。
2)无论是source还是点空格最好是用绝对路径:
放在同一个目录下,所以source ./import.sh 引用看起来没有问题, 但是如果在上一层目录运行脚本时会出错,如下:
$ sh shell_testing/test.sh
shell_testing/test.sh: line 4: ./import.sh: No such file or directory
实践如下,相当于shell去包含./import.sh是从运行目录去包含的,去了上层目录就认为./import.sh是在上一层目录下面,所以得用绝对路径:
所以引用的话最好使用绝对路径, 其实也就是test.sh脚本的绝对路径,因为这两个脚本放在同一个目录下。
import.sh
test.sh
$./test.sh
LiLei
EOF
Your name is LiLei
注意:
1.两个点之间,有空格,千万注意.
2.两个脚本不在同一目录,要用绝对路径
3.为简单起见,通常用第一种方法
摘自链接:https://www.jianshu.com/p/cc4dda1fb77f
在两个机房里这两个VIP下面有很多的服务,如果用ansible一次性给干死了,但是这个java的进程要启动得15秒,也就出现了集体同时在启动中,没有对外服务,怎么办?只有先后启动,这时就有用了,两个机房的一些机器15秒后启动,一些机器立即启动,错开启动的好处是,两个机房能同时对外提供服务:
/data/www/ai.xxx.xxxx.com/server/start.sh
/data/www/ai.xxx.xxxx.com/server/stop.sh
延后启动的shell文件引用:
/data/www/ai.xxx.xxxx.com/bin/delayRestart.sh
直接启动的shell文件无 sleep 15:
还是相对路径问题,得修改这个jar包路径为绝对路径:
/data/www/ai.xxx.xxxx.com/bin/output.log
Error: Unable to access jarfile eladmin-system-3.1.jar
实践成功部署如下:
ansible ai_web -a'ps -eo pid,lstart,etime,cmd | grep eladmin-system|grep -v grep'
10.73.234.136 | CHANGED | rc=0 >>
24238 Thu May 21 14:21:03 2020 02:28 java -jar -Xms1024m -Xmx4096m -XX:MetaspaceSize=1024M -XX:MaxMetaspaceSize=4096m /data/www/ai.xxx.xxxx.com/server/eladmin-system-3.1.jar --spring.profiles.active=prod
10.73.234.137 | CHANGED | rc=0 >>
34282 Thu May 21 14:21:19 2020 02:12 java -jar -Xms1024m -Xmx4096m -XX:MetaspaceSize=1024M -XX:MaxMetaspaceSize=4096m /data/www/ai.xxx.xxxx.com/server/eladmin-system-3.1.jar --spring.profiles.active=prod
10.169.70.72 | CHANGED | rc=0 >>
52665 Thu May 21 14:21:19 2020 02:12 java -jar -Xms1024m -Xmx4096m -XX:MetaspaceSize=1024M -XX:MaxMetaspaceSize=4096m /data/www/ai.xxx.xxxx.com/server/eladmin-system-3.1.jar --spring.profiles.active=prod
10.169.70.71 | CHANGED | rc=0 >>
31033 Thu May 21 14:21:04 2020 02:27 java -jar -Xms1024m -Xmx4096m -XX:MetaspaceSize=1024M -XX:MaxMetaspaceSize=4096m /data/www/ai.xxx.xxxx.com/server/eladmin-system-3.1.jar --spring.profiles.active=prod
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/10558/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
最后编辑: jackxiang 编辑于2020-5-21 14:33
评论列表