在 Ubuntu 上备份 PHP 相关数据,通常包含网站程序文件和数据库(如 MySQL/MariaDB)。下面按常见场景给你一套实用方案。
常见目录:
/var/www/html
/var/www/你的站点
sudo tar -czvf /backup/php_site_$(date +%F).tar.gz /var/www/html
查看备份:
ls -lh /backup
mysqldump -u root -p 数据库名 > /backup/db_数据库名_$(date +%F).sql
mysqldump -u root -p --all-databases > /backup/all_db_$(date +%F).sql
mysqldump -u root -p 数据库名 | gzip > /backup/db_数据库名_$(date +%F).sql.gz
创建脚本:
sudo nano /usr/local/bin/backup_php.sh
内容示例:
#!/bin/bash
DATE=$(date +%F)
BACKUP_DIR=/backup
WEB_DIR=/var/www/html
DB_USER=root
DB_PASS=你的密码
DB_NAME=你的数据库
mkdir -p $BACKUP_DIR
# 备份网站
tar -czf $BACKUP_DIR/site_$DATE.tar.gz $WEB_DIR
# 备份数据库
mysqldump -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BACKUP_DIR/db_$DATE.sql.gz
赋予执行权限:
sudo chmod +x /usr/local/bin/backup_php.sh
编辑定时任务:
crontab -e
每天凌晨 2 点备份:
0 2 * * * /usr/local/bin/backup_php.sh
sudo tar -xzvf /backup/site_2026-01-21.tar.gz -C /
gunzip < /backup/db_2026-01-21.sql.gz | mysql -u root -p 数据库名
php-fpm 时注意会话目录 /var/lib/php/sessions如果你用的是 LNMP / 宝塔 / Docker / WordPress,可以告诉我,我可以给你更针对性的备份方案。