您的位置:首页 > 运维架构 > Shell

linux下使用shell脚本定时备份数据库

2015-04-02 00:00 676 查看
#!/bin/sh

# 定义变量,请根据具体情况修改
# 定义脚本目录
scriptsDir=`var/script`

# 定义用于备份数据库的用户名和密码
user=dbuser
userPWD=dbpasswd

# 定义备份数据库名称
dbNames=(dbname)

# 定义备份目录
dataBackupDir=/var/DataCopy/backup

# 定义邮件正文文件
eMailFile=/var/DataCopy/logs/email.txt

# 定义邮件地址
eMail=kl_peng@foxmail.com

# 定义备份日志文件
logFile=/var/DataCopy/logs/mysqlbackup.log

# DATE=`date -I`
DATE=`date -d "now" +%Y%m%d`

echo `date -d "now" "+%Y-%m-%d %H:%M:%S"` > $eMailFile

for dbName in ${dbNames[*]}
do
# 定
7fe0
义备份文件名
dumpFile=$dataBackupDir/$dbName-$DATE.sql.gz

# 使用mysqldump备份数据库,请根据具体情况设置参数
mysqldump -u$user -p$userPWD $dbName | gzip > $dumpFile
done

if [[ $? == 0 ]]; then
echo "DataBase Backup Success!" >> $eMailFile
else
echo "DataBase Backup Fail!" >> $emailFile
fi

# 写日志文件
echo "================================" >> $logFile
cat $eMailFile >> $logFile
echo $dumpFile >> $logFile

# 发送邮件通知
#cat $eMailFile | mail -s "MySQL Backup" $eMail

把上面的脚本写好之后,chmod +x 赋予可执行权限,然后添加到contab

vim /etc/crontab

加入一行:01 01 * * * root /bin/sh 脚本路径(这里替换成刚才写的shell脚本)

这个自动备份就完成了,每天凌晨1点01分备份数据库

-----------------------------10K+招聘、技术交流群:207776690
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息