如何在CentOS7终端批量更新站点已安装的fastwpnow插件
CentOS7 批量更新站点fastwpnow插件实现方案
前置准备
- 先修正参考命令里的错误:标准站点根目录是
public_html,不是publich_html;删除命令正确格式是rm -rf,不要漏写横杠,否则会执行报错 - 操作必须使用root账号登录终端执行,避免目录权限不足导致文件复制失败
- 建议先执行备份命令,避免更新异常影响站点正常运行:
tar zcf /root/fastwpnow_backup_$(date +%Y%m%d).tar.gz /home/*/public_html/wp-content/plugins/fastwpnow/
- 提前确认你已经更新完成的插件源文件绝对路径,后续脚本里需要替换成这个路径
批量更新执行脚本
直接在终端执行以下脚本即可,脚本会自动遍历/home下所有用户目录,仅对存在fastwpnow插件目录的站点执行清空旧文件、同步新文件的操作:
# 替换成你自己服务器上已更新完成的fastwpnow插件源路径 NEW_PLUGIN_PATH="/home/MyUser/public_html/wp-content/plugins/fastwpnow/" for user_home in /home/*/; do target_plugin_dir="${user_home}public_html/wp-content/plugins/fastwpnow/" # 判断当前站点是否安装了fastwpnow插件 if [ -d "$target_plugin_dir" ]; then echo "正在更新用户 $(basename "$user_home") 的站点插件,路径:$target_plugin_dir" # 清空旧版本插件文件 rm -rf "${target_plugin_dir}"* # 复制新版本插件文件 cp -R "${NEW_PLUGIN_PATH}"* "$target_plugin_dir" # 修正目录权限,避免WordPress识别异常,如果你的web服务用apache运行,把后面的所有者改成apache:apache chown -R "$(basename "$user_home"):$(basename "$user_home")" "$target_plugin_dir" fi done echo "全部fastwpnow插件更新执行完毕"
注意事项
- 如果你不确定哪些站点会被更新,可以先把脚本里的
rm -rf、cp -R、chown三行注释掉,先跑一遍脚本看输出的待更新站点列表,确认范围正确后再放开执行 - 执行完成后可以随机进入2-3个站点的WordPress后台,查看插件版本号是否为更新后的版本,也可以直接看目标目录下的文件修改时间确认同步成功
- 如果你的服务器上站点不是放在/home/用户目录下的public_html路径,自行修改脚本里的目标路径拼接规则即可
内容的提问来源于stack exchange,提问作者Khaled Alkhamesi
相关产品推荐
相关产品推荐

