您的位置 首页 > 数码极客

linux数据库如何做备份吗、数据库对表做一个备份

需要完整的全部代码的发私信给我。

变量申请部分:

#set envariable

export today=`date +%Y%m%d`

export week=`date +%w`

export day=`date +%d`

export TOPBAK=/data/backup #存放备份文件的目录

export BAKDEST=${TOPBAK}

export KEEPDAY=7 #文件保留天数

export FILEDEST=/data/ell #需备份的文件所在目录

linux下获取随机密码的脚本:主要要把密码写入到log日志上,后续解压需用到该密码

#set envariable for md5

#mk5 info file in env $BAKDEST

export pswd=`< /dev/urandom tr -dc 0-9-A-Z-a-z-|head -c ${1:-20};echo`

export sysflag=tmsp

export dbflag=${sysflag}_db

export apflag=${sysflag}_ap

export md5flag=$BAKDEST/${sysflag}_${today}_md5.log

export logflag=$BAKDEST/${sysflag}_${today}.log

备份mysql和应用的脚本:

#backup database

mysqldump -uroot -ptmsp11 source > $BAKDEST/${dbflag}_${today}.bak

#backup application

tar -czvf - --exclude=*.log* --exclude=*.out* $FILEDEST | openssl enc -e -aes256 -k $pswd -out ${apflag}_${today}.

echo "#################" > ${md5flag}

echo "date:"${today} >> ${md5flag}

echo "pswd:"$pswd >> ${md5flag}

md5sum ${apflag}_${today}. >> ${md5flag}

echo "###untar command:" >> ${md5flag}

echo "mkdir -p "$FILEDEST >> ${md5flag}

echo "openssl enc -d -aes256 -k " $pswd " -in ${sysflag}_"${today}". | tar xz -C $FILEDEST" >> ${md5flag}

删除旧归档文件的脚本:这里保留7份最后的备份文件,可以根据自己需要调整

#remove old backup file

#keep 7 active bakcup file

echo "#########del history file ##################";date

find $BAKDEST -type f -name "${sysflag}.*" ! -name "*.sh" | sort -nr | awk '{if (NR>=7){print $1}}'|xargs rm -f

备份文件传送至异机ftp备份服务器的脚本:

#upload backup file to lftp server

#set env par for local ftp sever

export LFTPFLAG=1#控制是否进行备份

export LFTPSERVER=***.***.***.***

export LFTPUSER=****

export LFTPPWD=****

export LFTPBAK=/food_source

export LFTPSH=$BAKDEST

echo "#####Start Copy back data to lftp server########";date

if [ ${LFTPFLAG} -eq 1 ]; then

cd $TOPBAK

find . -type f -mtime -1 -name "${sysflag}*" ! -name "; > $BAKDEST

sed -i 's/^/put /' $BAKDEST

echo "ftp -niv <<- EOF" > $BAKDEST

echo "open "$LFTPSERVER >> $BAKDEST

echo "user "$LFTPUSER $LFTPPWD >> $BAKDEST

echo "lcd "$TOPBAK >> $BAKDEST

echo "cd "$LFTPBAK >> $BAKDEST

echo "bin" >> $BAKDEST

cat $BAKDEST $BAKDEST > $LFTPSH

rm -f $BAKDEST

rm -f $BAKDEST

echo "bye" >> $LFTPSH

echo "EOF" >> $LFTPSH

chmod +x $LFTPSH

sh $LFTPSH

fi

echo "#####End Copy back data to lftp server########";

备份文件传送到异地ftp服务器的脚本:这里走的是阿里云的sftp

#set env par for aliyun ftp

export CFTPFLAG=1

export CFTPSERVER=***.***.***.***

export CFTPUSER=***

export CFTPPWD=***

export CFTPBAK=/data/backup/food_source

export CFTPSH=$BAKDEST

echo "#####Start Copy back data to aliyun ftp server########";date

if [ ${CFTPFLAG} -eq 1 ]; then

cd $TOPBAK

find . -type f -mtime -1 -name "${sysflag}*" > $BAKDEST

sed -i 's/^/put /' $BAKDEST

echo "sftp backup@"${CFTPSERVER}" <<EOF" > $BAKDEST

echo "lcd "$TOPBAK >> $BAKDEST

echo "cd "$CFTPBAK >> $BAKDEST

cat $BAKDEST $BAKDEST > $CFTPSH

rm -f $BAKDEST

rm -f $BAKDEST

echo "exit" >> $CFTPSH

echo "EOF" >> $CFTPSH

chmod +x $CFTPSH

sh $CFTPSH

fi

echo "#####End Copy back data to aliyun ftp server########";

利用crontab就可以实现定时备份文件夹、mysql数据库,并传送到本地ftp服务器、远方sftp服务器。

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“linux数据库如何做备份吗,数据库对表做一个备份,数据库怎么做备份,数据库怎么对表做备份,Linux如何备份”边界阅读