44 lines
1.3 KiB
Bash
Executable File
44 lines
1.3 KiB
Bash
Executable File
#\!/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
|