linux 常用自定义命令、自定义执行脚本

以下自定义命令维护在~/bin目录下
新建了自定义命令之后,给该文件夹下的全部自定义命令添加执行权限,参考如下

chmod u+x ./*

自定义命令创建示例

自定义log命令,用于查看日志文件等

vi /bin/log

内容如下:

#!/bin/bash
if [ ! -n "$2" ]; then
tail -100f $1
else
tail -$2f $1
fi

给log文件赋予可执行权限

cd ~/bin
chmod u+x log

使用示例,假如有info.log日志文件,可使用log命令查看日志文件

log info.log      //默认打印最后100行,取决于自定义命令定义
或者
log info.log 500  //打印最后500行日志

自定义命令参考

pps:查看以java -jar方式跑的java程序信息,可替换

#!/bin/bash
if [ ! -n "$1" ]; then
ps -ef | grep 'java -jar'
else
ps -ef | grep $1
fi

ps:打印某个匹配文件夹下的日志

#!/bin/bash
if [ ! -n "$2" ]; then
tail -100f /data/services/hfpm-$1/log/app.log
else
tail -$2f /data/services/hfpm-$1/log/app.log
fi

自定义脚本参考

springboot部署脚本run.sh:

#!/bin/bash
set -e  # 报错不在继续执行

SERVICE_NAME=${PWD##*/}
JAR=$SERVICE_NAME.jar
MPORT=8021

echo ">>> git pull"
git pull

echo ">>> mvn clean package -Dmaven.javadoc.skip=true"
mvn clean package -Dmaven.javadoc.skip=true -Dmaven.javadoc.skip=true

echo ">>> cd target"
cd target
mv app.jar $JAR

echo ">>> kill -9 $(lsof -t -sTCP:LISTEN -i:$MPORT)"
kill -9 $(lsof -t -sTCP:LISTEN -i:$MPORT)

JAVA_OPTS="-Xms512m -Xmx1536m -Dspring.profiles.active=dev"
echo ">>> nohup java -jar $JAVA_OPTS $JAR > ../log/app.log &"
BUILD_ID=dontKillMe nohup java -jar $JAVA_OPTS $JAR > ../log/app.log &

minio对象存储服务器启动脚本start.sh:

#!/bin/bash

PIDS=$(ps aux | grep minio | grep -v grep | awk -F' ' {'print $2'})
if [ "$PIDS" != "" ]; then
kill -9 ${PIDS[0]}
else
echo 'no minio running...'
fi

echo '>>> start minio'
MINIO_ACCESS_KEY=V3IJR32L89EGIN8ZYJUF MINIO_SECRET_KEY=RDL+gs+RpPkkB0uIPmDbAyO3duX7VH8WfDBmObT6 nohup ./minio server /data/data > minio.log 2>&1 &

日志备份重启脚本restart.sh:

#!/bin/bash
set -e  # 报错不在继续执行

SVC=platform # 服务名称
SVCDIR=/app/u01/services/ # 服务jar包所在文件夹
LOGDIR=/app/u01/logcron/ # 日志目录
BAKCOUNT=3 # 每多少次重启删除最早一次备份

JAR=$SVCDIR$SVC".jar" # 服务jar包位置
# 先停掉服务
kill -9 $(jps -ml | grep $SVC | awk '{print $1}')
# kill -9 $(lsof -n -P -t -i:$MPORT)
while [ -n "$(jps -ml | grep $SVC | awk '{print $1}')" ];do
  sleep 0.1
done
# 如果日志目录不存在则新建
if [ ! -d $LOGDIR ]; then
  mkdir $LOGDIR
fi
# 找出当前最大的备份数
MAX=0
for i in $(ls $LOGDIR | grep $SVC)
do
  temp=${i/$SVC/}
  temp=${temp/".log"/}
  if [ $temp -gt $MAX ];then
    MAX=$temp
  fi
done
# 如果还不是最大备份数则在当前日志基础上加一
# 否则删除最早的日志备份(如果满足条件),并向前移动一个位置
if [ $MAX -lt $BAKCOUNT ];then
  MAX=$(expr $MAX + 1)
else
  rm -rf $LOGDIR$SVC"1.log"
  for i in $(seq 2 $BAKCOUNT);do
    mv -f $LOGDIR$SVC$i".log" $LOGDIR$SVC$(expr $i - 1)".log"
  done
fi
LOGFILE=$LOGDIR$SVC$MAX".log"
BUILD_ID=dontKillMe nohup java -jar -Xms2048m -Xmx4096m -Dspring.profiles.active=site $JAR >> $LOGFILE &

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值