From 7823a835d6ba6b947dd0b39fae157a0fc56faaab Mon Sep 17 00:00:00 2001 From: xzx3344521 Date: Wed, 22 Oct 2025 08:36:11 +0800 Subject: [PATCH] =?UTF-8?q?Update=20=E5=AE=9E=E6=97=B6=20history=20?= =?UTF-8?q?=E7=9B=91=E6=8E=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 实时 history 监控 | 81 +++++++++++++---------------------------------- 1 file changed, 22 insertions(+), 59 deletions(-) diff --git a/实时 history 监控 b/实时 history 监控 index 0240508..950d544 100644 --- a/实时 history 监控 +++ b/实时 history 监控 @@ -1,22 +1,12 @@ -# 创建本地安装脚本 -cat > /tmp/local_install.sh << 'EOF' +# 重新下载修复版监控脚本 +curl -sSL -o /root/install/cmd_monitor.sh https://raw.githubusercontent.com/xzx3344521/dock/main/cmd_monitor_fixed.sh + +# 如果没有修复版,使用这个替代方案 +cat > /root/install/cmd_monitor_fixed.sh << 'EOF' #!/bin/bash -INSTALL_DIR="/root/monitor" -SCRIPT_NAME="cmd_monitor.sh" -SCRIPT_PATH="$INSTALL_DIR/$SCRIPT_NAME" -LOG_DIR="/root/command_logs" - -# 创建目录 -mkdir -p "$INSTALL_DIR" -mkdir -p "$LOG_DIR" - -# 创建主监控脚本 -cat > "$SCRIPT_PATH" << 'SCRIPT_EOF' -#!/bin/bash - -INSTALL_DIR="/root/monitor" -SCRIPT_PATH="$INSTALL_DIR/cmd_monitor.sh" +INSTALL_DIR="/root/install" +SCRIPT_PATH="$INSTALL_DIR/cmd_monitor_fixed.sh" LOG_DIR="/root/command_logs" PID_FILE="/tmp/cmd_monitor.pid" @@ -98,9 +88,22 @@ case "$1" in echo "按 Ctrl+C 停止" echo "================================" + # 设置信号处理 + trap 'echo -e "\n停止监控"; exit 0' INT TERM + declare -A last_sizes while true; do + # 检测to命令输入 + if read -t 0.5 -n 2 input 2>/dev/null; then + if [ "$input" = "to" ]; then + echo "切换到后台模式..." + "$SCRIPT_PATH" background + exit 0 + fi + fi + + # 监控命令 for user_dir in /home/* /root; do [ -d "$user_dir" ] || continue user=$(basename "$user_dir") @@ -131,50 +134,10 @@ case "$1" in done ;; - stop) - if [ -f "$PID_FILE" ]; then - kill $(cat "$PID_FILE") 2>/dev/null - rm -f "$PID_FILE" - echo "监控已停止" - else - echo "监控未运行" - fi - ;; - - install) - # 设置开机自启动 - (crontab -l 2>/dev/null | grep -v "$SCRIPT_PATH"; echo "@reboot $SCRIPT_PATH background >/dev/null 2>&1") | crontab - - - # 设置to命令别名 - echo "alias to='$SCRIPT_PATH to'" >> ~/.bashrc - echo "alias to" >> ~/.bashrc - - echo "安装完成!" - echo "请运行: source ~/.bashrc" - echo "然后使用: to 命令切换模式" - ;; - *) - echo "使用方法: $0 {foreground|background|stop|install|to}" - echo "安装后使用 'to' 命令切换模式" + echo "使用方法: $0 {foreground|background|stop|to}" ;; esac -SCRIPT_EOF - -chmod +x "$SCRIPT_PATH" - -# 执行安装 -echo "开始安装..." -"$SCRIPT_PATH" install - -echo "" -echo "=== 安装完成 ===" -echo "脚本位置: $SCRIPT_PATH" -echo "日志目录: $LOG_DIR" -echo "请运行: source ~/.bashrc" -echo "然后测试: to" EOF -# 执行本地安装 -chmod +x /tmp/local_install.sh -/tmp/local_install.sh +chmod +x /root/install/cmd_monitor_fixed.sh