lampp环境下Mysql和网站备份脚本

来源:互联网 发布:英文有声书软件 编辑:程序博客网 时间:2024/05/16 06:25

一个简陋的mysql和网站备份脚本

脚本功能:

1、自动备份mysql全库,自动删除一周前备份,数据有效期为一周。
2、自动备份网站数据,自动删除三个月前备份,数据有效期三个月;每月1号执行目录完全备份,其余时间增量备份。
3、对备份数据进行权限控制,防止恶意人员查看修改,若以root权限执行脚本,则其他用户对备份数据没有任何权限。

1#!/bin/bash
2#
3#lampp mysql databases and web data backup bash;
4#mysql backup data keep 7 days;
5#website backup data keep 3 months and incremental backup in per month.
6 
7#author:LinuxPad
8#website:www.linuxpad.cn
9#mail:linuxpad.cn(at)gmail.com
10#created:26 November 2012
11 
12#Mysql dabase information
13db_host="localhost"
14db_user="root"
15db_passwd=""
16MYSQL="/opt/lampp/bin/mysql"
17MYSQLDUMP="/opt/lampp/bin/mysqldump"
18 
19#Path information
20WEBHOME="/opt/lampp/htdocs/blog"
21BACKUP_DB="/opt/backup/database"
22BACKUP_WEB="/opt/backup/web"
23 
24#Time information
25time=`date +"%Y-%m-%d"`
26day=`date +"%d"`
27month=`date +"%Y-%m"`
28weekday=`date +"%u"`
29 
30#Path enable write
31if [ ! -w "$BACKUP_DB" ] && [ ! -w "$BACKUP_WEB"]; then
32    chmod -R 700 $BACKUP_DB $BACKUP_WEB
33fi
34 
35#Mysql Backup
36$MYSQLDUMP -u $db_user -p$db_passwd -h $db_host --all-databases > $BACKUP_DB/$time
37cd $BACKUP_DB && tar -czf $time.tar.gz $time && rm -rf $time && chmod go-rwx $time.tar.gz
38if [ $weekday == "1" ]; then
39    find $BACKUP_DB -mtime +7 | xargs rm -rf {}
40fi
41 
42#Website Backup
43if [ ! -d $BACKUP_WEB/$month ];then
44    mkdir $BACKUP_WEB/$month
45    touch $BACKUP_WEB/$month/$month
46    chmod -R go-rwx $BACKUP_WEB/$month
47fi
48cd $BACKUP_WEB/$month && tar -g $month -czf $time.tar.gz $WEBHOME && chmod go-rwx $time.tar.gz
49if [ $day == "01" ]; then
50    find $BACKUP_WEB -mtime +90 | xargs rm -rf{}
51fi

使用脚本前需在/opt下事先建立好目录

1mkdir -p /opt/backup/{database,web}
2chmod -R go-wrx /opt/backup

添加计划任务

假设脚本位置为/root/cron/backup.sh,每天2点执行备份

查看源代码
打印帮助
1crontab -e
2添加以下内容
30 2 * * * /root/crontab/backup.sh 2>/root/crontab/backup.log
0 0