文档首页> 上云指南> 老站数据打包的正确姿势

老站数据打包的正确姿势

发布时间:2025-11-04 11:14        更新时间:2025-11-04 14:26
老站搬家的第一步,是把要搬的东西列全,而不是急着敲打包命令。清单齐了,打包只是执行;清单漏了,传完还要返工。 一、列清单 老站的数据分四类:网站文件、数据库、配置、零散物。网站文件是站点根目录整棵目录树;数据库用 mysqldump 导出;配置包括 nginx 或 apache 的站点配置、SSL 证书、.htaccess 这类隐藏文件;零散物最容易被忘掉——crontab 定时任务、上传目录的软链接、站长自己加的 sitemap。另外记录老站的运行身份:PHP 跑在哪个用户下、上传目录属主是谁,新机照着建同名用户最省事。 二、打包加校验 文件部分打包并生成校验和: tar -czf site_backup.tar.gz -C /var/www site md5sum site_backup.tar.gz > site.md5 md5 值记下来,新机解包前再算一次,两边一致才继续,不一致说明传输出了问题,重传。打包后用 tar -tvf site_backup.tar.gz | head 抽查包内容,能列出条目说明包没坏。 数据库部分: mysqldump -uroot -p --single-transaction --default-character-set=utf8mb4 dbname > dbname.sql 字符集参数要写上,老库 utf8、新库 utf8mb4 之类的差异就不会埋雷。新机 ssh 端口不是 22 的,rsync 加 -e 'ssh -p 端口号'。超过 10GB 的包,传输前用 split -b 5G 拆开,传完 cat 合并再校验,中途断线不用从头来。 三、传输与核对 用 rsync 传到新机,它自带断点续传和校验: rsync -avz --progress site_backup.tar.gz root@新机IP:/root/ 新机上 md5sum -c site.md5 核对通过后解包,再做两个总量复核:find . -type f | wc -l 对比文件总数,du -sh 对比目录总大小,两个数字和老机一致就稳了。老机的属主和权限也同步过来:传输保留不了属主信息时,解包后按第一节的记录 chown 一遍。 常见报错:解包后站点报找不到文件,十有八九是 .htaccess 之类的隐藏文件没进包,tar 默认不会丢点文件,排查时先看打包命令里有没有排除规则。 打包看似简单,校验和清单才是这套动作的灵魂。数字对不上,就不要往下走。清单、压缩包、校验值放同一个目录,新机核对时一目了然;每次重传后校验值要重新生成,别拿旧值对包。关键数据建议两人各算一遍校验再签字确认,多一双眼睛少一次返工。