chore: initial commit
This commit is contained in:
43
protect_session.sh
Executable file
43
protect_session.sh
Executable file
@@ -0,0 +1,43 @@
|
||||
#\!/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
|
||||
Reference in New Issue
Block a user