在 Linux 上备份 LAMP(Linux + Apache + MySQL/MariaDB + PHP) 环境,通常分为 系统配置备份、网站文件备份、数据库备份 三部分。下面给你一套实用、可操作的方案。
网站一般放在:
/var/www//srv/www/tar -czvf /backup/www_$(date +%F).tar.gz /var/www/
tar -czvf /backup/apache_$(date +%F).tar.gz /etc/apache2/
# CentOS/RHEL 用:
# tar -czvf /backup/httpd_$(date +%F).tar.gz /etc/httpd/
mysqldump -u root -p --all-databases > /backup/mysql_all_$(date +%F).sql
只备份某个库:
mysqldump -u root -p dbname > /backup/dbname_$(date +%F).sql
压缩备份:
mysqldump -u root -p --all-databases | gzip > /backup/mysql_all_$(date +%F).sql.gz
tar -czvf /backup/php_$(date +%F).tar.gz /etc/php/
#!/bin/bash
BACKUP_DIR=/backup
DATE=$(date +%F)
mkdir -p $BACKUP_DIR
# 网站
tar -czf $BACKUP_DIR/www_$DATE.tar.gz /var/www
# Apache
tar -czf $BACKUP_DIR/apache_$DATE.tar.gz /etc/apache2
# MySQL
mysqldump -u root -p密码 --all-databases | gzip > $BACKUP_DIR/mysql_$DATE.sql.gz
echo "LAMP backup done: $DATE"
⚠️ 脚本中密码明文不安全,建议用
~/.my.cnf
crontab -e
每天凌晨 2 点备份:
0 2 * * * /root/backup_lamp.sh
rsync -avz /backup/ user@backup-server:/data/backup/
gunzip < mysql.sql.gz | mysql -u root -p
如果你愿意,可以告诉我:
我可以给你更精确的备份方案。