Files
telegram-customer-bot/protect_session.sh
2025-11-01 21:58:31 +08:00

44 lines
1.3 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#\!/bin/bash
# Session 文件保护脚本
SESSION_FILE="user_session.session"
BACKUP_DIR="session_backups"
# 创建备份目录
mkdir -p "$BACKUP_DIR"
# 检查 session 文件
if [ \! -f "$SESSION_FILE" ]; then
echo "❌ 警告: $SESSION_FILE 不存在!"
# 尝试从备份恢复
LATEST_BACKUP=$(ls -t "$BACKUP_DIR"/*.session 2>/dev/null | head -1)
if [ -n "$LATEST_BACKUP" ]; then
echo "尝试从备份恢复: $LATEST_BACKUP"
cp "$LATEST_BACKUP" "$SESSION_FILE"
cp "${LATEST_BACKUP}-journal" "${SESSION_FILE}-journal" 2>/dev/null
echo "✅ 已从备份恢复"
else
echo "❌ 没有可用的备份"
exit 1
fi
else
# 文件存在,创建备份
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
cp "$SESSION_FILE" "$BACKUP_DIR/user_session_${TIMESTAMP}.session"
if [ -f "${SESSION_FILE}-journal" ]; then
cp "${SESSION_FILE}-journal" "$BACKUP_DIR/user_session_${TIMESTAMP}.session-journal"
fi
# 只保留最近7天的备份
find "$BACKUP_DIR" -name "*.session*" -mtime +7 -delete
echo "✅ Session 备份成功: $TIMESTAMP"
fi
# 确保权限正确
chmod 600 "$SESSION_FILE"* 2>/dev/null
# 设置为不可修改(可选,需要 root
# chattr +i "$SESSION_FILE" 2>/dev/null