温馨提示×

如何备份linux lamp

小樊
39
2026-09-18 20:00:59
栏目: 智能运维

在 Linux 上备份 LAMP(Linux + Apache + MySQL/MariaDB + PHP) 环境,通常分为 系统配置备份、网站文件备份、数据库备份 三部分。下面给你一套实用、可操作的方案。


一、备份网站文件(Apache / PHP)

网站一般放在:

  • /var/www/
  • /srv/www/
  • 或自定义目录

1. 打包网站目录

tar -czvf /backup/www_$(date +%F).tar.gz /var/www/

2. 备份 Apache 配置

tar -czvf /backup/apache_$(date +%F).tar.gz /etc/apache2/
# CentOS/RHEL 用:
# tar -czvf /backup/httpd_$(date +%F).tar.gz /etc/httpd/

二、备份数据库(MySQL / MariaDB)

方法 1:mysqldump(最常用)

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

三、备份 PHP 配置(可选)

tar -czvf /backup/php_$(date +%F).tar.gz /etc/php/

四、一键 LAMP 备份脚本(推荐)

#!/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


五、自动定时备份(cron)

crontab -e

每天凌晨 2 点备份:

0 2 * * * /root/backup_lamp.sh

六、异地备份(非常重要)

  • 拷贝到另一台服务器:
rsync -avz /backup/ user@backup-server:/data/backup/
  • 或上传到云存储(OSS / S3 / 对象存储)

七、恢复方式(简要)

  • 网站:解压 tar 包
  • 数据库:
gunzip < mysql.sql.gz | mysql -u root -p

如果你愿意,可以告诉我:

  • 系统(Ubuntu / CentOS / Debian)
  • 是否用 Docker
  • 是否生产环境

我可以给你更精确的备份方案

0