#!/bin/bash
# File: /home/backup/backup.sh
#Database info
DB_NAME=“***"
DB_USER=“***"
DB_PASS=“***"
# Other vars
BIN_DIR="/usr/local/mysql/bin"
BCK_DIR="/home/backup/***"
DATE=` date +%y%m%d `
LAST_MOUTH_DATE=` date -d '1 month ago' +%y%m%d `
# 备份文件的系统目录
SYSTEM_DIR=/home/wwwroot/***/
#备份名称
BCK_NAME_DB=***
BCK_NAME_WWW=***
# Todo
# 检测备份存放目录时候存在
if [ ! -d "$BCK_DIR/$DATE" ];then
mkdir "$BCK_DIR/$DATE"
fi
# 开始备份数据库
$BIN_DIR/mysqldump -u$DB_USER -p$DB_PASS $DB_NAME > $BCK_DIR/$DATE/$BCK_NAME_DB.sql
# 开始备份网站
if [ ! -f "$BCK_DIR/$DATE/$BCK_NAME_WWW.tar.gz" ]; then
# 打包为tar文件
tar -cf $BCK_DIR/$DATE/$BCK_NAME_WWW.tar $SYSTEM_DIR
# gzip压缩
gzip -r $BCK_DIR/$DATE/$BCK_NAME_WWW.tar
fi
# 删除一个月之前的备份文件
if [ -d "$BCK_DIR/$LAST_MOUTH_DATE" ]; then
rm -rf "$BCK_DIR/$LAST_MOUTH_DATE"
fi
设置定时任务 vi /etc/crontab
#数据库备份 每天凌晨5点执行备份
0 5 * * * root /home/backup/backup.sh
欢迎加入PHP技术交流群(478642311)