防伪码:忘情公子著
前几天领导安排了一个任务,让写一个脚本备份某mysql数据库中的部分表,并要将备份好的文件上传至某ftp服务器中,于是就有了以下的脚本
#!/bin/bash
#Filename:mysqldump.sh
#Function:backupapartoftablesfrommysqldatabasesthenpackageitandputittoftpserver
#Author:ForgottenLove
#Date:-12-15
basedir=/root/backup
curdate=$(/bin/date+%Y%m%d)
FTPIP=192.168.7.500
FULLNAME=${basedir}/mysqldump_${curdate}.tar.gz
DESTDIR=/OPS/backup
local_filename=$(/bin/basename$FULLNAME)
DESTFILE=${DESTDIR}/$local_filename
ftpput(){
ftp-i-n<
open$FTPIP
userusernamepassword
bin
Passive
cd$DESTDIR
put$FULLNAME$DESTFILE
quit
EOF
}
#put$FULLNAME$DESTFILE
#backupalltables
echo"##################################backupingtables#####################################"
fortablenameinbondinstitution;do
mysqldump-uroot-pgamma23$ss_product$tablename>${basedir}/${tablename}_$curdate
done
#backupapartoftables
mysqldump-uroot-pgamma23$ss_productqb_bond_deal-w"create_time">${basedir}/qb_bond_deal_$curdate
echo"##################################packagingfile#######################################"
cd$basedir
/bin/tarzcfmysqldump_${curdate}.tar.gz[biq]*_$curdate
echo"##################################puttingfile#########################################"
if[-fmysqldump_${curdate}.tar.gz];then
ftpput&>/dev/null
fi
echo"##################################finished#########################################"
本脚本适用于redhat系列操作系统,用时需要更改相应的ftp服务器地址、ftp用户名、ftp用户密码,以及相应的备份目录和文件要上传到ftp的哪个目录中等信息。另外使用时需要确保脚本中的ftp、mysqldump等命令在系统中已存在方可执行本脚本,否则将会报错。