#\!/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