5分钟上手ShellCrash自定义命令:让脚本管理效率提升300%

5分钟上手ShellCrash自定义命令:让脚本管理效率提升300%

【免费下载链接】ShellCrash RM 【免费下载链接】ShellCrash 项目地址: https://gitcode.com/GitHub_Trending/sh/ShellCrash

你是否还在为重复执行ShellCrash管理命令而烦恼?是否希望通过简单配置实现一键启动、日志监控等高级功能?本文将带你通过自定义命令功能,3步打造专属ShellCrash操作流,让服务器管理效率倍增。

读完本文你将掌握:

  • 自定义命令文件的标准格式与存放路径
  • 3个实用场景的命令配置模板(启动优化/日志监控/定时任务)
  • 命令调试与故障排查的快捷方法

自定义命令工作原理

ShellCrash通过读取特定目录下的命令文件实现功能扩展,其核心实现位于scripts/menu.sh的命令检测函数:

ckcmd() {
  command -v sh >/dev/null 2>&1 && command -v $1 >/dev/null 2>&1 || type $1 >/dev/null 2>&1
}

系统会优先加载scripts/command.env中定义的环境变量,然后扫描自定义命令目录。命令执行流程如下:

mermaid

自定义命令实战指南

基础配置:3个核心文件位置

ShellCrash的自定义命令系统依赖以下文件结构,所有用户定义的命令必须遵循此规范:

  • 命令定义文件:configs/command.env
  • 自定义脚本目录:scripts/custom/
  • 配置存储路径:configs/ShellCrash.cfg

场景1:一键启动带日志监控的服务

创建自定义启动命令,实现服务启动+日志实时监控+异常报警的全流程自动化:

  1. 新建命令文件:
# 创建自定义命令脚本
touch scripts/custom/start_with_log.sh
chmod +x scripts/custom/start_with_log.sh
  1. 编写命令内容:
#!/bin/sh
# 启动核心服务并记录日志
$CRASHDIR/scripts/start.sh start
# 实时监控日志输出
tail -f $TMPDIR/ShellCrash.log | grep -E --color=auto 'ERROR|WARN|INFO'
  1. 在configs/command.env中添加命令映射:
# 自定义命令映射
alias crash_start_log="$CRASHDIR/scripts/custom/start_with_log.sh"

场景2:自动备份配置文件

实现配置文件的定时备份+版本标记+空间清理的自动化流程:

#!/bin/sh
# 配置文件自动备份脚本
BACKUP_DIR="$CRASHDIR/backups"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)

# 创建备份目录
mkdir -p $BACKUP_DIR

# 备份核心配置文件
cp $CRASHDIR/configs/ShellCrash.cfg $BACKUP_DIR/config_$TIMESTAMP.cfg
cp $CRASHDIR/yamls/config.yaml $BACKUP_DIR/yaml_$TIMESTAMP.yaml

# 保留最近10个备份
ls -tp $BACKUP_DIR | grep -v '/$' | tail -n +11 | xargs -I {} rm -- $BACKUP_DIR/{}

echo "备份完成:$BACKUP_DIR/config_$TIMESTAMP.cfg"

场景3:网络状态一键诊断

整合系统信息、网络连接、服务状态的综合诊断命令:

#!/bin/sh
# 网络状态诊断工具
echo "=== 系统状态 ==="
uptime
echo -e "\n=== 网络连接 ==="
netstat -tuln | grep -E '7890|7892|9999'
echo -e "\n=== 服务状态 ==="
$CRASHDIR/scripts/start.sh status
echo -e "\n=== 端口占用 ==="
ss -lntup | grep CrashCore

命令调试与优化技巧

快速定位命令问题

当自定义命令执行异常时,可通过以下步骤诊断:

  1. 检查命令权限:
ls -la scripts/custom/
  1. 查看系统日志:
cat $TMPDIR/ShellCrash.log | grep -i error
  1. 使用调试模式执行:
bash -x scripts/custom/your_command.sh

性能优化建议

  • 减少IO操作:频繁访问的配置可缓存到内存,参考scripts/start.sh的缓存实现
  • 并行处理:耗时任务使用后台执行,如scripts/menu.sh的并行日志推送
  • 资源监控:添加内存占用检查,避免脚本异常占用资源:
# 内存检查示例
VmRSS=$(cat /proc/$PID/status | grep -w VmRSS | awk 'unit="MB" {printf "%.2f %s\n", $2/1000, unit}')
if (( $(echo "$VmRSS > 200" | bc -l) )); then
  logger "内存占用过高:$VmRSS" 31
fi

高级应用:命令参数化与动态配置

通过参数化设计,让自定义命令支持动态调整参数,实现一个命令多种用途:

#!/bin/sh
# 带参数的日志查询工具
# 参数1: 日志级别(ERROR/WARN/INFO)
# 参数2: 查询行数

LOG_LEVEL=${1:-INFO}
LINE_COUNT=${2:-20}

grep -i "$LOG_LEVEL" $TMPDIR/ShellCrash.log | tail -n $LINE_COUNT

使用方法:

# 查询最近30行ERROR日志
custom_log ERROR 30

总结与后续扩展

通过本文介绍的自定义命令系统,你已掌握ShellCrash的核心扩展能力。建议优先实现以下高频需求:

  1. 自动化部署流程:结合scripts/init.sh实现环境自动配置
  2. 多服务器管理:通过SSH批量执行自定义命令
  3. 监控告警集成:对接企业微信/钉钉机器人实现异常通知

所有自定义命令代码均可提交到项目的custom-commands目录,参与社区贡献。下一篇我们将介绍如何通过Web界面可视化管理这些自定义命令,敬请期待!

提示:定期备份你的自定义命令到backups/custom/目录,避免系统升级导致配置丢失。

【免费下载链接】ShellCrash RM 【免费下载链接】ShellCrash 项目地址: https://gitcode.com/GitHub_Trending/sh/ShellCrash

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值