PbootCMS快速恢复的脚本模板

资源来源网络,如需授权,请更换源码,模块仅供学习,如需商用请购买正版授权,本栏目不提供技术服务,积分不够请签到!如何签到?系统升级暂停签到,恢复关注公告!
如遇下载链接蓝奏网盘打不开lanzous替换成lanzoux尝试! 广告

PbootCMS 被入侵后的快速恢复通常涉及文件清理、权限重置和缓存清除等重复性操作。虽然完全自动化的“一键恢复”脚本因服务器环境(Linux/Windows)和具体入侵情况而异,但我们可以提供一个基于 Linux Bash 的标准恢复脚本模板。

该脚本旨在辅助完成以下核心步骤:

‌备份当前状态‌:在操作前强制备份,防止误操作导致数据丢失。
‌清理核心程序‌:删除除 data、template、static、runtime 外的所有核心文件(假设这些目录未被深度篡改,若被篡改需手动处理)。
‌重置权限‌:将根目录设为只读,仅开放必要目录的写入权限。
‌清除缓存‌:清空 runtime 缓存。

‌注意‌:执行脚本前,请务必先下载最新的 PbootCMS官方安装包,并将核心文件(apps, core, config 等)准备好。此脚本主要用于清理旧环境和设置权限,‌不包含自动下载和替换新文件的功能‌(因为需要人工确认新版本兼容性)。

※‌注意‌:该恢复脚本仅供参考,使用前请先备份自己的网站,如非熟悉请勿轻易尝试使用!

——————————————————————————
#!/bin/bash

# PbootCMS 快速恢复辅助脚本
# 功能:备份当前站点、清理核心文件(保留数据/模板/静态资源)、重置权限、清除缓存
# 警告:请在执行前仔细阅读代码,并根据实际路径修改 SITE_ROOT 变量
# 建议先在测试环境运行,确保无误后再在生产环境使用

set -e # 遇到错误立即退出

# ================= 配置区域 =================
# 请修改为你的网站根目录绝对路径
SITE_ROOT=”/www/wwwroot/your_website.com”

# 需要保留的目录(相对路径,不要加斜杠开头)
KEEP_DIRS=(“data” “template” “static” “runtime”)

# 备份目录
BACKUP_DIR=”${SITE_ROOT}/_backup_before_restore_$(date +%Y%m%d_%H%M%S)”

# ================= 函数定义 =================

log_info() {
echo “[INFO] $(date ‘+%Y-%m-%d %H:%M:%S’) $1”
}

log_error() {
echo “[ERROR] $(date ‘+%Y-%m-%d %H:%M:%S’) $1” >&2
}

check_root() {
if [ “$(id -u)” -ne 0 ]; then
log_error “请使用 sudo 或 root 权限运行此脚本”
exit 1
fi
}

check_site_root() {
if [ ! -d “$SITE_ROOT” ]; then
log_error “网站根目录不存在: $SITE_ROOT”
exit 1
fi

# 简单检查是否是 PbootCMS (检查是否存在 admin.php 或 index.php)
if [ ! -f “$SITE_ROOT/index.php” ] && [ ! -f “$SITE_ROOT/admin.php” ]; then
log_error “未在 $SITE_ROOT 检测到 PbootCMS 特征文件,请确认路径是否正确”
exit 1
fi
}

create_backup() {
log_info “正在创建备份到: $BACKUP_DIR”
mkdir -p “$BACKUP_DIR”
cp -a “$SITE_ROOT”/. “$BACKUP_DIR”/
log_info “备份完成”
}

clean_core_files() {
log_info “开始清理核心文件…”

# 进入网站根目录
cd “$SITE_ROOT”

# 获取所有文件和目录列表
for item in *; do
# 跳过隐藏文件(如 .git, .user.ini 等,可根据需要决定是否删除)
if [[ “$item” == .* ]]; then
continue
fi

# 检查是否在保留列表中
should_keep=false
for keep_dir in “${KEEP_DIRS[@]}”; do
if [ “$item” == “$keep_dir” ]; then
should_keep=true
break
fi
done

if [ “$should_keep” = false ]; then
log_info “删除: $item”
rm -rf “$item”
else
log_info “保留: $item”
fi
done

# 特别处理:删除根目录下的可疑 PHP 文件(除了 index.php, admin.php, api.php 等官方文件)
# 这里为了安全,建议手动检查根目录下的非官方 PHP 文件
# 脚本不自动删除根目录 PHP 文件,以免误删用户自定义入口

log_info “核心文件清理完成”
}

reset_permissions() {
log_info “开始重置文件权限…”

# 1. 将所有文件设置为 555 (只读)
find “$SITE_ROOT” -type f -exec chmod 555 {} \;

# 2. 将所有目录设置为 555 (只读+执行)
find “$SITE_ROOT” -type d -exec chmod 555 {} \;

# 3. 开放必要目录的写入权限
for dir in “${KEEP_DIRS[@]}”; do
if [ -d “$SITE_ROOT/$dir” ]; then
log_info “设置可写权限: $dir”
chmod -R 755 “$SITE_ROOT/$dir”
# 某些服务器可能需要 777,建议优先使用 755,若报错再尝试 777
# chmod -R 777 “$SITE_ROOT/$dir”
fi
done

log_info “权限重置完成”
}

clear_cache() {
log_info “清除运行时缓存…”
if [ -d “$SITE_ROOT/runtime” ]; then
# 删除 runtime 下所有文件,但保留目录结构
find “$SITE_ROOT/runtime” -type f -delete
find “$SITE_ROOT/runtime” -type d -empty -delete # 删除空目录
log_info “缓存已清除”
else
log_info “runtime 目录不存在,跳过”
fi
}

# ================= 主执行流程 =================

main() {
log_info “=========================================”
log_info “PbootCMS 快速恢复辅助脚本启动”
log_info “目标目录: $SITE_ROOT”
log_info “=========================================”

check_root
check_site_root

read -p “警告:此操作将删除除 data/template/static/runtime 外的所有文件,并重置权限。是否继续?(y/n): ” confirm
if [ “$confirm” != “y” ] && [ “$confirm” != “Y” ]; then
log_info “用户取消操作”
exit 0
fi

create_backup
clean_core_files
reset_permissions
clear_cache

log_info “=========================================”
log_info “清理与权限重置完成!”
log_info “下一步操作:”
log_info “1. 请将最新版的 PbootCMS 核心文件 (apps, core, config 等) 上传到 $SITE_ROOT”
log_info “2. 检查 database.php 配置是否正确”
log_info “3. 访问网站测试是否正常”
log_info “=========================================”
}

main “$@”

 

——————————————————————————

脚本使用说明与注意事项

‌修改配置‌:
打开脚本文件,找到 SITE_ROOT=”/www/wwwroot/your_website.com”,将其修改为你实际的网站根目录路径。
如果你的 PbootCMS 使用了非标准的保留目录(例如你重命名了 data 目录),请同步修改 KEEP_DIRS 数组。

‌执行权限‌:
将脚本保存为 pbootcms_restore.sh。
赋予执行权限:chmod +x pbootcms_restore.sh。
使用 root 或 sudo 执行:sudo ./pbootcms_restore.sh。

‌核心逻辑说明‌:
‌备份‌:脚本首先会在网站根目录下创建一个带时间戳的 _backup_before_restore_… 文件夹,完整复制当前所有文件。如果操作失误,可以从这里恢复。
‌清理‌:它会遍历根目录,删除不在 KEEP_DIRS 列表中的所有文件和文件夹。这意味着 apps, core, config, admin.php, index.php 等都会被删除。‌你需要随后手动上传新版 PbootCMS 的这些核心文件。‌
‌权限‌:将全站文件设为 555(只读),目录设为 555,然后单独将 data, template, static, runtime 设为 755(可读写)。这是 PbootCMS 推荐的安全权限设置。
‌缓存‌:清空 runtime 目录下的所有文件,确保新配置生效。

‌后续步骤‌:
脚本执行完毕后,网站处于“半残”状态(缺少核心程序)。
请下载最新版PbootCMS,解压后,将 apps, core, config, admin.php, index.php, api.php 等核心文件上传覆盖到网站根目录。
‌不要覆盖‌ data, template, static 目录(除非你确定要更新模板或静态资源)。
检查 /config/database.php 中的数据库配置是否正确。
访问网站前台和后台,确认功能正常。

‌安全建议‌:
此脚本仅处理文件层面。如果数据库也被注入恶意内容,你需要单独登录数据库进行清理(如删除陌生管理员账号、清除恶意文章)。
恢复后,请立即修改后台管理员密码,并检查是否有陌生的 .php 文件出现在 uploads 或 static 目录中。

©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!
风格酷模板网 » PbootCMS快速恢复的脚本模板
NOTICE:【咨询风格酷】客服QQ:1131734965
NOTICE:【咨询风格酷】客服微信:wwwxmamcn
NOTICE:【风格酷模板网②群】QQ群:288678775
☉免责声明:本站所有模板均来自用户分享和网络收集,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服,我们核实后会立即删除。
☉如果源码网盘地址失效!或有其他问题,请点我报错,谢谢合作!
☉人民币与积分汇率为1比10,即1元=10积分.有任何疑问请联系客服
☉如有其他问题,请加网站客服QQ(1131734965)进行交流。
☉本站提供的源码、模板、软件工具等其他资源,都不包含技术服务,请大家谅解!
☉源码、模板等资源会随着技术、环境的升级而存在部分问题,还请慎重选择。

发表评论

风格酷模板网www.xmam.cn分享优质网站模板

立即查看 了解详情