#!/bin/bash # ============================================ # 查看备份定时任务与最近备份 # 用法:./status.sh # ============================================ set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" CONF_FILE="$SCRIPT_DIR/backup.conf" CRON_TAG="shanxia2.0-mysql-backup" GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' echo "=== crontab (${CRON_TAG}) ===" if crontab -l 2>/dev/null | grep "${CRON_TAG}"; then echo -e "${GREEN}定时任务已启用${NC}" else echo -e "${YELLOW}未安装定时任务(请执行 ./start.sh)${NC}" fi echo "" echo "=== 配置 ===" if [ -f "$CONF_FILE" ]; then # shellcheck disable=SC1090 source "$CONF_FILE" echo "MYSQL_HOST=${MYSQL_HOST:-}" echo "MYSQL_PORT=${MYSQL_PORT:-}" echo "MYSQL_USER=${MYSQL_USER:-}" echo "MYSQL_DATABASE=${MYSQL_DATABASE:-}" echo "BACKUP_DIR=${BACKUP_DIR:-}" echo "LOG_DIR=${LOG_DIR:-}" echo "KEEP_DAYS=${KEEP_DAYS:-}" echo "LOG_TABLE_MAX_BYTES=${LOG_TABLE_MAX_BYTES:-}" echo "IGNORE_DATA_TABLE=${IGNORE_DATA_TABLE:-}" else echo -e "${YELLOW}缺少 backup.conf${NC}" exit 0 fi echo "" echo "=== 最近备份(最多 10 个)===" if [ -d "${BACKUP_DIR:-}" ]; then ls -lht "${BACKUP_DIR}"/"${MYSQL_DATABASE}"_*.sql.gz 2>/dev/null | head -10 || echo "(暂无备份文件)" else echo "(备份目录不存在: ${BACKUP_DIR:-})" fi echo "" echo "=== 最近 cron 日志(末尾 30 行)===" CRON_LOG="${LOG_DIR:-/iflytek/shanxia2.0/db-backup/logs}/cron-backup.log" if [ -f "$CRON_LOG" ]; then tail -n 30 "$CRON_LOG" else echo "(尚无日志: $CRON_LOG)" fi