王志勇 发表于 2026年11月02日 08:52
这个功能需要考虑性能,因为需要大量遍历整个站点的文件,昨天测试PHP的速度,Windows本机运行累加1000万次耗时0.09秒,用虚拟硬盘(高速)测试重复获取一个1字节的文件的修改时间1000万次,耗时0.43秒。然后,用一个3兆多的MP3文件做测试,重复获取这个3兆多的文件的修改时间1000万次,同样耗时0.43秒。
在Linux的Debian系统下做同样的测试(也用虚拟硬盘测试),结果一样,即无论文件多大,获取这个文件的信息(如修改时间、文件大小),耗时是完全一样的。有了这个测试结果,即使站点有20万个文件,遍历一遍也不会那么占资源。当然,达到20万个文件的站点,需要相应的解决方案。
因为现在的服务器都是固态硬盘,遍历文件的这个操作,读取能力比机械硬盘强的不是一星半点。而且这个备份文件用到的遍历文件的功能,也不是很常用,每天、或者每7天,最多执行1次。
这个功能分2个版块:
1. 双服务器文件备份,即另一个服务器远程完全复刻某个站点,文件+程序+数据库100%相同;
2. 服务器的文件一键自动备份到本机电脑。(Windows本机的DOS命令,必须安装wget命令。)
这些年手动备份的方法是定期打压缩包,然后下载,耗时耗力。这个功能完成之后,是遍历整个站点目录,只更新时间节点之后的文件。只能用这个方法,如果想节省硬盘读取,需要在原来的每个数据写入的文件,都建立更新日志,工作量特别大,而且容易有遗漏。
防止PHP超时的方法
PHP运行超时默认的时间是几十秒。为了防止PHP超时,每次更新时,把10个~20个文件分为一组,更新下载之后,再更新下一组的10~20个文件。
对于勤于更新的站点,每次同步的备份一般总共不超时10个文件。
功能完成之后
能让站点一键全自动备份,能备份所有的站点。一旦主力站点出现不能访问,可以临时解析到临时的服务器,数据是100%相同的。
置顶的文章:
股骨头坏死的中早期修复方法
Windows流畅度300%以上体感的操作
超低价享受i7-7700的体验
家用电脑理性优化升级天梯图之2026
服务器版Linux系统的选择之2026
秒会+实战PHP程序设计培训(2)
如何快速自制CPU天梯图?
我不明白你明不明白我明白(明白不)
最好的音乐播放硬件
如何打造全静音台式电脑之2026
近期的主题:
博客又有活儿得干了
支架设计(2):功放机+航空头的支架
数码评测(81):停电引起电脑损坏如何防止?
Debian 12.0的“致命”bug
数码评测(80):最好用的平价鼠标和维修/改装
这次的PHP大漏洞/淡定的PHPer们
“明白不”的心理机制(2)
博客/网页有没有必要做访问量统计?
数码评测(79):如何打造全静音台式电脑之2026
AI编程和人工编程的差别
世界上最好的二级域名
数码评测(78):最好的音乐播放硬件
博客新调整计划
人生讨论(28):滑翔伞运动
真玄学心得(26):最新消息
DIY(35-4):6路×2 USB全自动电脑切换器
特级干货(1-2):发质/脱发与内分泌研究
“更新提示”的好处/提醒用语
PHP和Java、CGI、Python的区别
前几天差点进入生活黑洞
版权声明:本博客所有文章,均符合原创的定义,禁止转载,违者将必究;正确的方法是贴原文的标题和网址即可。
与此相关的链接
自由勇专栏
Blog存档 Archives
2025年-2026年03月(10)
2024年(13)
2023年 +