redis
./redis-server /usr/local/redis/redis.conf
./redis-cli -h 127.0.0.1 -p 6379 -a 123456
./redis-cli -h 127.0.0.1 -p 6379 -a 123456 shutdown # 关闭redis
nginx
/usr/local/nginx/sbin/nginx -s reload
/usr/local/nginx/sbin/nginx -s quit # (正常退出,保存相关信息)
/usr/local/nginx/sbin/nginx -s stop # (立即退出,不保存相关信息)
# windows
start nginx(.exe)
zookeeper
./zkServer.sh start
./zkCli.sh -server 127.0.0.1:2181
kafka
./kafka-server-start.sh ../config/server.properties 1>/dev/null 2>&1 &
./kafka-server-stop.sh
./zookeeper-server-start.sh ../conf/zookeeper.properties
./zookeeper-server-stop.sh
nexus
./bin/nexus start
# 访问地址:http://192.168.236.131:8081/nexus 默认账号:admin/admin123
cas_server
cd /usr/local/cas/cas-overlay-template
./build.sh run
# 清除target文件夹
./build.sh clean
# 其他命令可以查看build.sh里面的脚本内容,控制台出现READY后访问ip:port/cas/login 即可登陆,默认账号:casuser:Mellon
nacos
# 单机模式启动
./startup.sh -m standalone
# 集群启动使用外置数据源,需要配置cluster.conf且节点数量要>=3
./startup.sh
# 集群启动使用内置数据源
sh startup.sh -p embedded
# 默认账号:nacos:nacos
arthas
java -jar arthas-boot.jar [java pid]
# web console:127.0.0.1:8563 127.0.0.1:3658
consul
# -dev表示开发模式运行,只有本地可以访问,另外还有-server表示服务模式运行
consul agent -dev
# 可以使用ip访问
./consul agent -dev -client 0.0.0.0 -ui
# 访问localhost:8500
weblogic
# 执行./startWebLogic.sh
# 访问http://ip:7001/console
/home/test/Oracle/Middleware/Oracle_Home/user_projects/domains/base_domain/bin
shell脚本
$#是传给脚本的参数个数
$0是脚本本身的名字
$1是传递给该shell脚本的第一个参数
$2是传递给该shell脚本的第二个参数
$@是传给脚本的所有参数的列表
$*是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$是脚本运行的当前进程ID号
$?是显示最后命令的退出状态,0表示没有错误,其他表示有错误
shell菜鸟教程 | 9个实用shell脚本,建议收藏 | Shell编程基础知识总结 |
---|---|---|
手把手教你写一个Shell脚本部署你的服务 |
启动jar
#!/bin/bash是指此脚本使用/bin/bash来解释执行。其中,#!是一个特殊的表示符,其后,跟着解释此脚本的shell路径。命令文件所在的路径是/bin/sh或者/usr/bin/sh.bash只是shell的一种,还有很多其它shell,如:sh,csh,ksh,tcsh.除第一行外,脚本中所有以“#”开头的行都是注释。
- 简易版
#!/bin.sh
# 注意不要有空格,否则解释成命令
gatewayjar=gateway.jar
gatewaypid=$(ps -ef | grep java | grep $gatewayjar | grep -v 'grep'| awk '{print $2}')
# 两个命令在一行的话使用分号断开
if [ $gatewaypid ]; then
kill -9 $gatewaypid
echo "进程$gatewaypid killed"
fi
nohup java -jar gateway.jar >/dev/null 2>&1 &
# 判断上一个命令是否执行成功 $?返回上一个命令执行状态 0成功1失败 -ne表示不等于
if [ $? -ne 0 ]; then
echo "start failed"
else
echo "start success"
fi
# ...
- 复杂版
#!/bin/bash
# 基础配置(根据实际修改)
APP_NAME="your-app.jar" # Jar包名称
JAVA_OPTS="-Xms512m -Xmx1024m" # JVM参数
SERVER_PORT=8080 # 应用端口
LOG_FILE="app.log" # 日志文件路径
PID_FILE="app.pid" # 进程ID文件路径
# 启动函数
start() {
# 检查是否已运行
if [ -f "$PID_FILE" ]; then
PID=$(cat "$PID_FILE")
if ps -p "$PID" > /dev/null; then
echo "Error: $APP_NAME is already running (PID: $PID)."
exit 1
fi
fi
# 检查端口冲突
if netstat -tuln | grep ":$SERVER_PORT " > /dev/null; then
echo "Error: Port $SERVER_PORT is already in use."
exit 1
fi
# 启动命令
echo "Starting $APP_NAME..."
nohup java $JAVA_OPTS -jar "$APP_NAME" --server.port=$SERVER_PORT > "$LOG_FILE" 2>&1 &
PID=$!
echo $PID > "$PID_FILE"
echo "Started $APP_NAME (PID: $PID). Port: $SERVER_PORT"
}
# 停止函数
stop() {
if [ -f "$PID_FILE" ]; then
PID=$(cat "$PID_FILE")
if ps -p "$PID" > /dev/null; then
echo "Stopping $APP_NAME (PID: $PID)..."
kill -15 "$PID"
rm -f "$PID_FILE"
echo "Stopped $APP_NAME."
else
echo "Error: $APP_NAME is not running (invalid PID file)."
rm -f "$PID_FILE"
fi
else
echo "Error: PID file $PID_FILE not found."
fi
}
# 状态检查
status() {
if [ -f "$PID_FILE" ]; then
PID=$(cat "$PID_FILE")
if ps -p "$PID" > /dev/null; then
echo "$APP_NAME is running (PID: $PID)."
netstat -tuln | grep ":$SERVER_PORT " || echo "Port $SERVER_PORT is not listening."
else
echo "$APP_NAME is stopped (stale PID file)."
fi
else
echo "$APP_NAME is stopped."
fi
}
# 根据输入参数执行对应操作
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 3
start
;;
status)
status
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac
exit 0
kill所有java进程
#!/bin.sh
# 查找进程们(注意可能返回多个)
pIdArr=$(ps -ef | grep java | grep -v "grep" | awk '{print $2}')
# 遍历kill进程们
for pId in ${pIdArr}; do
kill -9 ${pId}
echo "进程:${pId} 被kill"
done
启动nacos(cmd)
@echo off
chcp 65001 >nul
title Nacos
rem color 0a
rem 修改为你的Nacos实际安装路径
set NACOS_HOME=C:\E\nacos-server-2.2.3
set START_CMD=startup.cmd
echo.
echo [INFO] Starting Nacos in standalone mode...
echo [INFO] Nacos home: %NACOS_HOME%
echo.
if not exist "%NACOS_HOME%\bin\%START_CMD%" (
echo [ERROR] Nacos startup script not found at %NACOS_HOME%\bin\%START_CMD%
echo [ERROR] Please check the NACOS_HOME path.
pause
exit /b 1
)
rem cd /d "%NACOS_HOME%\bin"
rem call %START_CMD% -m standalone
rem wt -w 0 -p "CMD" --title "Nacos" -- "%COMSPEC%" /c "chcp 65001 >nul && "%NACOS_HOME%\bin\%START_CMD%" -m standalone"
wt -w 0 -p "CMD" --title "Nacos" -- "%COMSPEC%" /c "chcp 65001 >nul && cd /d "%NACOS_HOME%\bin" && %START_CMD% -m standalone"
rem set DERBY_OPTS=-Dderby.stream.error.file="%NACOS_HOME%\bin\derby.log"
rem wt -w 0 -p "CMD" --title "Nacos" -- "%COMSPEC%" /c "chcp 65001 >nul && set %DERBY_OPTS% && "%NACOS_HOME%\bin\%START_CMD%" -m standalone"
rem pause
启动redis(cmd)
@echo off
chcp 65001 >nul
title Redis Server
rem color 0a
:: =============================================
:: 配置部分(根据实际环境修改)
:: =============================================
:: Redis安装目录
set REDIS_HOME=C:\E\Redis-x64-3.0.504
:: Redis服务端程序
set REDIS_EXE=redis-server.exe
:: 配置文件(可选)
set REDIS_CONF=redis.windows.conf
:: 监听端口
set REDIS_PORT=6379
:: =============================================
:: 预检查:确保Redis可执行文件存在
:: =============================================
if not exist %REDIS_HOME%\%REDIS_EXE% (
echo [ERROR] Redis服务端程序未找到:
echo %REDIS_HOME%\%REDIS_EXE%
echo 请检查:
echo 1. REDIS_HOME路径是否正确?
echo 2. 是否已安装Redis for Windows?
pause
exit /b 1
)
:: =============================================
:: 检查端口是否被占用
:: =============================================
netstat -ano | findstr ":%REDIS_PORT%" >nul
if %errorlevel% equ 0 (
echo [ERROR] 端口 %REDIS_PORT% 已被占用!
echo 请关闭占用端口的程序或修改Redis配置。
pause
exit /b 1
)
:: =============================================
:: 启动Redis服务器
:: =============================================
echo [INFO] 正在启动Redis服务器...
:: 方式1:带配置文件启动(如果存在)
if exist %REDIS_HOME%\%REDIS_CONF% (
echo 启动命令: %REDIS_HOME%\%REDIS_EXE% %REDIS_HOME%\%REDIS_CONF%
:: call %REDIS_HOME%\%REDIS_EXE% %REDIS_HOME%\%REDIS_CONF%
wt -w 0 -p "CMD" --title "Redis" -- "%COMSPEC%" /c "chcp 65001 >nul && %REDIS_HOME%\%REDIS_EXE% %REDIS_HOME%\%REDIS_CONF%"
) else (
:: 方式2:无配置文件直接启动
echo 启动命令: %REDIS_HOME%\%REDIS_EXE% --port %REDIS_PORT%
:: call %REDIS_HOME%\%REDIS_EXE% --port %REDIS_PORT%
wt -w 0 -p "CMD" --title "Redis" -- "%COMSPEC%" /c "chcp 65001 >nul && %REDIS_HOME%\%REDIS_EXE% --port %REDIS_PORT%"
)
:: pause
windows terminal启动jar
@echo off
:: chcp 65001 >nul
:: start "Gateway" cmd /c "java -Dfile.encoding=UTF-8 -jar C:\E\import\mdjz3\gateway\service-gateway-1.7.1.RELEASE.jar --spring.cloud.bootstrap.location=C:\E\import\mdjz3\gateway\bootstrap.yml & pause"
:: start "Auth" cmd /c "java -Dfile.encoding=UTF-8 -jar C:\E\import\mdjz3\auth\service-auth-1.7.1.RELEASE.jar --spring.cloud.bootstrap.location=C:\E\import\mdjz3\auth\bootstrap.yml & pause"
:: 启动Windows Terminal,并在新标签页中运行JAR
wt -w 0 -p "CMD" --title "Gateway" -- "%COMSPEC%" /c "chcp 65001 >nul && java -Dfile.encoding=UTF-8 -Xbootclasspath/a:C:\E\import\mdjz3\gateway -jar C:\E\import\mdjz3\gateway\service-gateway-1.7.1.RELEASE.jar & pause"
wt -w 0 -p "CMD" --title "Auth" -- "%COMSPEC%" /c "chcp 65001 >nul && java -Dfile.encoding=UTF-8 -Xbootclasspath/a:C:\E\import\mdjz3\auth -jar C:\E\import\mdjz3\auth\service-auth-1.7.1.RELEASE.jar & pause"
ruoyi脚本
#!/bin/sh
# ./ry.sh start:启动 stop:停止 restart:重启 status:状态
AppName=ruoyi-admin.jar
# JVM参数
JVM_OPTS="-Dname=$AppName -Duser.timezone=Asia/Shanghai -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC"
APP_HOME=`pwd`
LOG_PATH=$APP_HOME/logs/$AppName.log
# start stop restart status
if [ "$1" = "" ];
then
# echo -e 将转义后的内容输出到屏幕上
echo -e "\033[0;31m 未输入操作名 \033[0m \033[0;34m {start|stop|restart|status} \033[0m"
exit 1
fi
if [ "$AppName" = "" ];
then
echo -e "\033[0;31m 未输入应用名 \033[0m"
exit 1
fi
function start()
{
PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
if [ x"$PID" != x"" ]; then
echo "$AppName is running..."
else
nohup java $JVM_OPTS -jar $AppName > /dev/null 2>&1 &
echo "Start $AppName success..."
fi
}
function stop()
{
echo "Stop $AppName"
PID=""
query(){
PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
}
query
if [ x"$PID" != x"" ]; then
kill -TERM $PID
echo "$AppName (pid:$PID) exiting..."
while [ x"$PID" != x"" ]
do
sleep 1
query
done
echo "$AppName exited."
else
echo "$AppName already stopped."
fi
}
function restart()
{
stop
sleep 2
start
}
function status()
{
PID=`ps -ef |grep java|grep $AppName|grep -v grep|wc -l`
if [ $PID != 0 ];then
echo "$AppName is running..."
else
echo "$AppName is not running..."
fi
}
case $1 in
start)
start;;
stop)
stop;;
restart)
restart;;
status)
status;;
*)
esac