ubuntu

Ubuntu LNMP中如何实现自动备份

小樊
41
2025-07-09 09:04:16
栏目: 智能运维

在 Ubuntu 系统中,使用 LNMP(Linux, Nginx, MySQL, PHP)堆栈时,可以通过编写脚本来实现自动备份。以下是一个简单的示例,展示了如何自动备份 MySQL 数据库和 Nginx 配置文件。

  1. 安装必要的软件包:
sudo apt-get update
sudo apt-get install mysqldump gzip tar cron
  1. 创建一个备份目录:
sudo mkdir -p /backup/mysql
sudo mkdir -p /backup/nginx
  1. 创建一个名为 backup.sh 的脚本文件:
sudo nano /etc/backup.sh
  1. 将以下内容粘贴到 backup.sh 文件中:
#!/bin/bash

# MySQL 数据库备份
DB_USER="your_mysql_user"
DB_PASSWORD="your_mysql_password"
DB_NAME="your_database_name"
DATE=$(date +"%Y%m%d%H%M%S")
BACKUP_DIR="/backup/mysql"

mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME | gzip > $BACKUP_DIR/$DB_NAME-$DATE.sql.gz

# Nginx 配置文件备份
NGINX_CONF="/etc/nginx/nginx.conf"
BACKUP_DIR_NGINX="/backup/nginx"

tar -czf $BACKUP_DIR_NGINX/nginx-$DATE.tar.gz $NGINX_CONF

# 删除 30 天前的备份文件
find /backup/mysql -type f -name "*.sql.gz" -mtime +30 -exec rm {} \;
find /backup/nginx -type f -name "*.tar.gz" -mtime +30 -exec rm {} \;
  1. 修改脚本中的数据库用户名、密码和名称:
DB_USER="your_mysql_user"
DB_PASSWORD="your_mysql_password"
DB_NAME="your_database_name"
  1. 保存并关闭文件。然后,为脚本添加可执行权限:
sudo chmod +x /etc/backup.sh
  1. 使用 crontab 设置定时任务。运行以下命令以编辑当前用户的 crontab 文件:
crontab -e
  1. 在文件末尾添加以下行,以每天凌晨 1 点执行备份脚本:
0 1 * * * /etc/backup.sh
  1. 保存并关闭文件。现在,备份脚本将每天自动运行,备份 MySQL 数据库和 Nginx 配置文件,并删除 30 天前的备份文件。

注意:请确保根据实际情况修改数据库用户名、密码和名称。另外,可以将备份文件存储在本地或远程服务器上,以防止数据丢失。

0
看了该问题的人还看了