在 Linux 上“备份 LNMP”(Linux + Nginx + MySQL/MariaDB + PHP)通常包括四部分:
Nginx 配置、网站文件、数据库、可能还有 PHP 配置。下面给你一套实用、可执行的备份方案,从简单到规范。
nginx -v
mysql -V
php -v
常见路径(不同系统略有差异):
/etc/nginx//home/wwwroot 或 /var/www/var/lib/mysql/etc/php/tar czf nginx-conf-$(date +%F).tar.gz /etc/nginx
tar czf wwwroot-$(date +%F).tar.gz /home/wwwroot
如果是 /var/www:
tar czf wwwroot-$(date +%F).tar.gz /var/www
⚠️ 不要直接拷 /var/lib/mysql,要用 mysqldump
mysqldump -uroot -p --all-databases > mysql-all-$(date +%F).sql
mysqldump -uroot -p dbname > dbname-$(date +%F).sql
mysqldump -uroot -p --all-databases | gzip > mysql-all-$(date +%F).sql.gz
tar czf php-conf-$(date +%F).tar.gz /etc/php
保存为 backup_lnmp.sh:
#!/bin/bash
DATE=$(date +%F)
BACKUP_DIR=/backup
mkdir -p $BACKUP_DIR
# Nginx
tar czf $BACKUP_DIR/nginx-$DATE.tar.gz /etc/nginx
# 网站
tar czf $BACKUP_DIR/www-$DATE.tar.gz /home/wwwroot
# MySQL
mysqldump -uroot -p'你的密码' --all-databases | gzip > $BACKUP_DIR/mysql-$DATE.sql.gz
# PHP
tar czf $BACKUP_DIR/php-$DATE.tar.gz /etc/php
加执行权限:
chmod +x backup_lnmp.sh
每天凌晨 3 点备份:
crontab -e
添加:
0 3 * * * /root/backup_lnmp.sh
tar xzf nginx-xxx.tar.gz -C /
tar xzf www-xxx.tar.gz -C /
gunzip < mysql-xxx.sql.gz | mysql -uroot -p
✅ 备份到异地 / 云盘(rsync、oss、s3)
✅ 保留 7~30 天备份
✅ 使用 xtrabackup(大库)
✅ 使用 LNMP 一键包自带备份脚本
如果你用的是:
告诉我,我可以给你对应版本的专用备份方法。