#!/bin/bash
#设置日志文件,前提建好了/backup/log目录
LogFile=/backup/log/`date +"%Y-%m"`log
#备份源目录
SourceDir=/cvs
#备份目标
BakDir=/backup
#保存20天过期自动删除
RetainDay=20
#备份的内容可以写进projectlst,如cvs目录下有a,b,c三个目录,projectlst填写多少就备份多少,下面是备份的
#具体脚本,其核心是tar打包,并把重要的内容记录到日志文件里
ProjectLst=/backup/projectlst
##################################################
DATE=`date +"%Y-%m-%d"`
echo "backup start at $(date +"%Y-%m-%d %H:%M:%S")" >$LogFile
echo "--------------------------------------------------" >>$LogFile
cd $BakDir
PROJECTLIST=`cat $ProjectLst`
for Project in $PROJECTLIST
do
ProjectData=$SourceDir/$Project
DestDir=$BakDir/$Project
PackFile=$DATE$Projecttgz
if [ -f $BakDir/$PackFile ]
then
echo "backup file have exist !" >>$LogFile
else
cp -RHpf $ProjectData $DestDir >/dev/null
tar -zcvf $PackFile $Project >/dev/null
echo "backup $Project done into $PackFile" >>$LogFile
rm -rf $Project
fi
done
echo "--------------------------------------------------" >>$LogFile
echo "backup end at $(date +"%Y-%m-%d %H:%M:%S")" >>$LogFile
echo " " >> $LogFile
##################################################
#下面的内容就是把刚才备份的内容传到服务器上,前提是你有一个可以访问到底FTP服务器
#put backup to ftp server
HOST=192168110111
FTP_USERNAME=ftpuser
FTP_PASSWORD=123456
cd $BakDir
echo "start open ftp serverat $(date +"%Y-%m-%d %H:%M:%S")" >> $LogFile
echo "--------------------------------------------------" >>$LogFile
/usr/bin/ftp -in < open $HOST
user $FTP_USERNAME $FTP_PASSWORD
put $DATE$Projecttgz
bye
EOF
echo "put ftp end at $(date +"%Y-%m-%d %H:%M:%S")" >>$LogFile
#最后上传完毕后再查看本地备份大于20天的自动删除,这样就可以实现本地异地双备份
find $Bakdir -type f -mtime +$RetainDay -name "$Projecttgz" -exec rm {} \; >/dev/null
exit 0
#最后我们还可用crontab做个周期性计划,比如每周一次全备份
#59 23 6 /home/backupsh
首先你要弄清楚你的数据库是备份的数据库还是分离的数据库,备份的数据库文件是bak形式的,分离的好象有两个文件一个是日志文件log格式一个是数据库文件mdf格式。如果是bak形式才能还原数据库,是mdf格式的就必须是附加数据库才行,要不就会出错。 大明互助团队真诚为您解答,祝您愉快!希望您在满意的答案上选择“采纳”☆⌒_⌒☆"!
麻烦采纳,谢谢!
以上就是关于linux备份数据库并上传到FTP服务器全部的内容,包括:linux备份数据库并上传到FTP服务器、SQL 数据库能直接在FTP里面恢复吗、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)