在CentOS系统中,使用LNMP(Linux, Nginx, MySQL, PHP)堆栈时,实现自动备份可以通过编写Shell脚本来完成。以下是一个简单的示例,展示了如何自动备份MySQL数据库和Nginx配置文件。
首先,创建一个Shell脚本来备份MySQL数据库:
#!/bin/bash
# 数据库配置
DB_USER="your_db_user"
DB_PASSWORD="your_db_password"
DB_NAME="your_db_name"
BACKUP_DIR="/path/to/backup/mysql"
# 创建备份目录(如果不存在)
mkdir -p $BACKUP_DIR
# 获取当前日期
DATE=$(date +%Y%m%d%H%M%S)
# 备份文件名
BACKUP_FILE="$BACKUP_DIR/$DB_NAME-$DATE.sql"
# 执行备份
mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_FILE
# 压缩备份文件
gzip $BACKUP_FILE
# 删除未压缩的备份文件(可选)
rm $BACKUP_FILE
echo "MySQL backup completed: $BACKUP_FILE.gz"
保存这个脚本为 backup_mysql.sh
,然后赋予执行权限:
chmod +x backup_mysql.sh
接下来,创建一个Shell脚本来备份Nginx配置文件:
#!/bin/bash
# Nginx配置文件路径
NGINX_CONF="/etc/nginx/nginx.conf"
BACKUP_DIR="/path/to/backup/nginx"
# 创建备份目录(如果不存在)
mkdir -p $BACKUP_DIR
# 获取当前日期
DATE=$(date +%Y%m%d%H%M%S)
# 备份文件名
BACKUP_FILE="$BACKUP_DIR/nginx.conf-$DATE"
# 备份Nginx配置文件
cp $NGINX_CONF $BACKUP_FILE
# 压缩备份文件
gzip $BACKUP_FILE
# 删除未压缩的备份文件(可选)
rm $BACKUP_FILE
echo "Nginx configuration backup completed: $BACKUP_FILE.gz"
保存这个脚本为 backup_nginx.sh
,然后赋予执行权限:
chmod +x backup_nginx.sh
使用 crontab
来设置定时任务,以便定期执行备份脚本。编辑当前用户的crontab文件:
crontab -e
添加以下行来每天凌晨2点执行备份脚本:
0 2 * * * /path/to/backup_mysql.sh
0 2 * * * /path/to/backup_nginx.sh
保存并退出编辑器。这样,系统就会每天凌晨2点自动执行备份脚本。
为了确保备份过程正常进行,可以设置一些监控措施,例如发送邮件通知。可以在备份脚本中添加邮件发送功能,或者使用其他监控工具来检查备份文件是否存在。
通过以上步骤,你就可以在CentOS系统中实现LNMP堆栈的自动备份。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读:CentOS LNMP环境中MySQL的备份策略是什么