加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

linux下备份文件及mysql数据库的脚本

发布时间:2022-11-16 17:32:37 所属栏目:MsSql教程 来源:转载
导读: 需要完整的全部代码的发私信给我。
变量申请部分:
#set envariable
export today=`date +%Y%m%d`
export week=`date +%w`
export day=`date +%d`
export TOPBAK=/data/backup #存放备份文

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

变量申请部分:

#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日志上mssql数据库备份,后续解压需用到该密码

#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}.tar.gz

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

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

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

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

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

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

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

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

#remove old backup file

#keep 7 active bakcup file

echo "#########del history tar.gz 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/lftp_bak.sh

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

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

cd $TOPBAK

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

sed -i 's/^/put /' $BAKDEST/ftp_file.txt

echo "ftp -niv > $BAKDEST/ftp_file.temp

echo "user "$LFTPUSER $LFTPPWD >> $BAKDEST/ftp_file.temp

echo "lcd "$TOPBAK >> $BAKDEST/ftp_file.temp

echo "cd "$LFTPBAK >> $BAKDEST/ftp_file.temp

echo "bin" >> $BAKDEST/ftp_file.temp

cat $BAKDEST/ftp_file.temp $BAKDEST/ftp_file.txt > $LFTPSH

rm -f $BAKDEST/ftp_file.temp

rm -f $BAKDEST/ftp_file.txt

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/cftp_bak.sh

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/ftp_file.txt

sed -i 's/^/put /' $BAKDEST/ftp_file.txt

echo "sftp backup@"${CFTPSERVER}" > $BAKDEST/ftp_file.temp

echo "cd "$CFTPBAK >> $BAKDEST/ftp_file.temp

cat $BAKDEST/ftp_file.temp $BAKDEST/ftp_file.txt > $CFTPSH

rm -f $BAKDEST/ftp_file.temp

rm -f $BAKDEST/ftp_file.txt

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服务器。

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!