59 lines
1.6 KiB
Bash
Executable File
59 lines
1.6 KiB
Bash
Executable File
#!/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
|