linux自动备份mysql并上传到远程ftp脚本

  • 七月 9th, 2010

生产需要,在cent os 5.4下自动备份mysql数据库并上传到远程ftp,花了点时间,脚本如下:

#!/bin/bash 
#auto ftp bakup
#by xhat 2010.06.08
 
#要备份的数据库
DBName=wwwdbname
 
#ftp账号信息
ftphost="test.com"
ftpuser=username
ftppass=passwd
 
#mysql账号信息
DBUser=root 
DBPasswd=123456
 
BackupPath=./
 
NewFile="$BackupPath"db$(date +%y%m%d).tar.gz 
DumpFile="$BackupPath"db$(date +%y%m%d).sql 
OldFile="$BackupPath"db$(date +%y%m%d --date='1 days ago').tar.gz 
#LogFile="$BackupPath"db$(date +%y%m%d --date='1 days ago').txt
 
echo "---------------------------" 
echo $(date +"%y-%m-%d %H:%M:%S")   
echo "---------------------------"   
 
#删除 
if [ -f $OldFile ]; then 
    
rm -f $OldFile
    
echo "[$OldFile]Delete Old File Success!"
fi 
 
#新 
if [ -f $NewFile ]; then 
    
echo "[$NewFile] 已经存在,不再备份! " 
else
    /
opt/mysql/mysqldump -u$DBUser -p$DBPasswd $DBName > $DumpFile
    
sleep 5
    
tar czvf $NewFile $DumpFile
    
rm $DumpFile -rf
    
echo "[$NewFile]备份成功"
fi
 
echo "打开ftp"
ftp -i -in <<!
open $ftphost 21
user $ftpuser $ftppass
cd /           
mput *.tar.gz
bye
!
 
echo "备份完成"

完成上面脚本后,在crontab里面加入每天凌晨定时执行即可。
10 3 * * * /opt/bak/mybak


  1. xavier说:2010-07-09 下午 4:53

    在vps上面试试~~有用~~谢老大`

给我回复

为了防止垃圾评论,请输入答案:12+4=