Mysql:通用mysql备份脚本:纯shell实现:支持自动包含用户数据库、支持压缩、支持自动清理
#!/bin/bashMYHST=127.0.0.1 MYUSR=root MYPWD=pwdPREFIX=bkdb SUFFIX=`date +%Y%m%d`.sql DESTDIR=/bak#---------------------------------------------------------------------------- if [ ! -e "${DESTDIR}" ] thenecho "fatal error : ${DESTDIR} not exists!"exit 1 fi#---------------------------------------------------------------------------- find "${DESTDIR}" -name "${PREFIX}-*.zst" -mtime +60 -exec rm {} \;#---------------------------------------------------------------------------- echo "begin ..." for DB in $(mysql -h${MYHST} -u${MYUSR} -p${MYPWD} -N -e 'show databases' 2>/dev/null) dofor SYSDB in information_schema performance_schema sysdoif [[ ${SYSDB} == ${DB} ]]; then continue 2; fidoneecho "mysqldump database : ${DB} ..."mysqldump -h${MYHST} -u${MYUSR} -p${MYPWD} --single-transaction --events --routines -d -B ${DB} | zstd -f -T0 > ${DESTDIR}/${PREFIX}-${DB}_d_${SUFFIX}.zst 2>/dev/nullmysqldump -h${MYHST} -u${MYUSR} -p${MYPWD} --single-transaction --events --routines -B ${DB} | zstd -f -T0 > ${DESTDIR}/${PREFIX}-${DB}_${SUFFIX}.zst 2>/dev/null done echo "end."