手动备份/导出LNMP环境网站数据
前言:最近需要给自己的VPS重装系统,由于之前自己使用apt的方式手动搭建了LNMP环境,需要导出一份数据备份。手动搭建的LNMP默认没有配置任何自动化备份工具,所以我快速遍历了一下LNMP的目录结构,选择使用基础、而又简单粗暴的方式导出数据备份。
创建备份终端窗口
先使用screen创建备份终端窗口,防止掉线导致备份进度损毁:
创建终端: screen -S backup
进入终端: screen -x backup
可创建backup目录便于管理: mkdir backup && cd backup
使用tar压缩备份配置目录
按照之前apt搭建的LNMP环境,标准的配置文件目录分别在以下位置:
- Nginx:
/etc/nginx
- www:
/var/www
- PHP:
/etc/php/8.0/cli
(默认配置可备可不备)
了解到数据的目录位置以后,就可以通过拷贝的方式对其备份了。这里我使用tar直接打包压缩指定数据目录,并生成tar.gz压缩包到刚刚创建的backup目录下。
tar使用命令: tar -zcvf [压缩包文件名.tar.gz] [需要打包备份的目录]
比如备份Nginx的命令:
sudo tar -zcvf nginx.tar.gz /etc/nginx/
打包备份www目录的命令:
sudo tar -zcvf www.tar.gz /var/www/
备份PHP配置的命令:
sudo tar -zcvf php.tar.gz /etc/php/8.0/
mysqldump 导出备份数据库
mysqldump
(或mariadb-dump
) 是MySQL/MariaDB数据库内置的一个数据库文件转储实用命令,使用它可以导出数据库中的数据和表结构。网上有许多相关的介绍,也可以参考MariaDB的文档: mariadb-dump/mysqldump
使用方式:
mysqldump -u [用户名] -p --databases [数据库名] > [导出文件名.sql]
这里我直接备份了整个数据库,导出为 database.sql 文件:
mysqldump -u root -p --all-databases > database.sql
最后,将backup目录下的备份文件使用SFTP下载到本地,至此LNMP相关的数据备份完毕(也可以对backup目录打个包,方便快速下载)。其他的服务目录数据,备份的方式也大同小异,还请自行查阅。
后续我会研究一下更高级的备份方式(如crontab按照日期备份),如果有什么推荐的服务器备份工具/方案,也欢迎在下方留言回复!