手动备份/导出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按照日期备份),如果有什么推荐的服务器备份工具/方案,也欢迎在下方留言回复!

评论
社区准则 博客 联系 反馈 状态
主题