linux启动jar包括tmpdir,复习项目中Linux常用指令,每天进步一点点(持续更新。。)...

1.grep -v grep           去除grep自身占用的进程号,在脚本中常用到,目的就是为了返回想要的唯一进程号

案例脚本:

#!/bin/bash

#Desc 停止jenkins

# 1. 初始化端口号,默认为6380

if [ "x" != "x$1" ] ;

then

port=$1

else

port=6380

fi

# 2. 获取jenkins 运行id

result=`ps -ef | grep jenkins | grep $port | grep -v grep | grep -v /bin/bash `

if [ "x" = "x$result" ] ;

then

echo "No jenkins running on port $port !"

else

echo "Find the running jenkins on port $port:"

echo $result

echo

fi

# 3. 获取jenkins pid

pid=`echo $result | awk -F " " '{print $2}'`

# 4. 杀死jenkins

if [ "x" != "x$pid" ] ;

then

kill -9 $pid

echo "Killed the process: $pid"

fi

2.sudo           普通用户被赋予权限操作root指令

3.expect  指令        用来实现远程服务器自动交互功能

案例脚本:

#!/bin/bash

#Desc 构建jenkin任务

# 执行测试

java=/opt/app/jdk1.8.0_152/jre/bin/java

jenkins_cli=/opt/app/jenkins/war/jenkins-cli-2.138.2.jar

jenkins_url=http://xx.xxx.xxx.xxx:6380/jenkins

user=xxx

pwd=xxx

# 触发测试任务

$java -jar $jenkins_cli -s $jenkins_url -auth $user:$pwd build $1

[root@vm-kvm12080-app bin]# cat rmt-apachectl.sh

#!/bin/bash

#Desc 远程apache管理命令

# 校验参数

if [ $# -lt 3 ]; then

echo "[error] 命令格式不正确!"

exit 3

fi

# 获取参数

ip=$1

passwd=xxx

signal=$3

user=xx

# 执行远程命令

expect -c "spawn ssh -t $user@$ip sudo /opt/app/apache24/bin/apachectl -k $signal

expect {

*yes/no* { send yes\r; exp_continue }

*password:* { send $passwd\r }

}

interact

exit

"

4.部署微服务应用脚本案例

#声明变量:

run_dir=/opt/app/falcon-ms

tmp_dir=/opt/app/ms-wars/tmp

bk_dir=/opt/app/ms-wars/backup

ms_name=falcon-ms-quartz

log_file=/opt/applog/falcon-ms-logs/falcon-ms-starter/$ms_name.log

java=/opt/app/jdk/jdk1.8.0_181/bin/java

# 停止原来的服务 (printf$2:表示打印第二个字段。 awk '{printf$2}' : 一行一行的读取打印每行的第二个字段。xargs kill -9: 将其接收的进程号杀死)

ps -ef | grep $ms_name | grep -v grep | awk '{printf$2}' | xargs kill -9

# 清理日志(> 输出重定向)

echo "" > $log_file

# 备份

dt=`date  +"%Y%m%d"`

mv $run_dir/$ms_name.jar $bk_dir/$ms_name.jar.$dt

# 部署新包

mv $tmp_dir/$ms_name.jar $run_dir

# 启动服务 (>"和“2>" 这两个的结合体就是 ”&>" 结果就是你输入命令,正确和错误信息都不输出在屏幕上直接输到你重定向的一个文件内。)

nohup $java -jar $run_dir/$ms_name.jar &> $log_file &

5.linux 查找应用程序安装目录

如果命令 which 和 whereis 都找不到安装目录,可使用以下办法:

示例: ps -ef|grep redis

得到了进程号 xxxx

然后 ls -l /proc/xxxx/cwd

顺便还可以找到配置文件路径:

示例:locate nginx.conf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值