shell实现自动备份mysql、整站数据的两个脚本分享
本文导语: 案例一:shell+cron实现MySQL自动备份且自动删除N天前备份 代码如下:#!/bin/shDUMP=/usr/local/mysql/bin/mysqldumpOUT_DIR=/home/ldl/xxx/backup/LINUX_USER=ldl DB_NAME=ldlDB_USER=ldlDB_PASS=xxx#How much days backup mostDAYS=1 #Core of scriptcd $OUT_DIRDATE=`date +%Y_%m_%d`OUT_SQL="...
案例一:shell+cron实现MySQL自动备份且自动删除N天前备份
#!/bin/sh
DUMP=/usr/local/mysql/bin/mysqldump
OUT_DIR=/home/ldl/xxx/backup/
LINUX_USER=ldl
DB_NAME=ldl
DB_USER=ldl
DB_PASS=xxx
#How much days backup most
DAYS=1
#Core of script
cd $OUT_DIR
DATE=`date +%Y_%m_%d`
OUT_SQL="$DATE.sql"
TAR_SQL="mysql_$DATE.tar.gz"
$DUMP --default-character-set=utf8 --opt -u$DB_USER -p$DB_PASS $DB_NAME > $OUT_SQL
tar -czf $TAR_SQL ./$OUT_SQL
rm $OUT_SQL
chown $DB_NAME:nobody ./$TAR_SQL
find ./ -name "mysql*" -type f -mtime +$DAYS -exec rm {} ;
+++++++++++++++++++++++++++++++++++++++++++++++++++++
mysqldump不用解释了吧,注意-uuser -ppass这样才可以,不能有空格。
这一句主要是在-mtime上-mtime +5表示5天前的文件,统一删除
我的操作系统是CentOS 5.4,只要把脚本拷贝到/etc/cron.daily,并设置为相同的权限就可以执行了,不用再添加crontab。
案例二:CentOS下自动备份网站和数据库的脚本并上传至FTP
假定这台服务器的网站目录为:/home/www,数据库程序路径为:/usr/local/mysql/bin,数据库名为:levil,ftp服务器为:ftphost,下面先来看完整的自动备份脚本(自动备份脚本保存位置为:/home/backup.sh):
#!/bin/bash
cd /home
WebBakName=web_$(date +%y%m%d).tar.gz
tar zcvf $WebBakName www
SqlBakName=sql_$(date +%y%m%d).tar.gz
/usr/local/mysql/bin/mysqldump -uusername -ppassword levil>backup.sql
tar zcvf $SqlBakName backup.sql
ftp -nv ftphost