备份文件保留说明
为节省空间以及确保数据备份作用,备份文件保留机制为:
-
一个星期以内:每6小时备份一次,每天4个文件全部保存
-
一个星期以外&一个月以内:每天保留一个备份文件
-
一个月以外&3个月以内:每个月保留4个备份文件(每月06、13、20、27号保留06点的备份文件)
-
3个月以外:每个月保留一个备份文件(每月13号06点)
命令操作
#备份部分采用每6小时一次
#crontab内容
#备份 1 */6 * * * /bin/sh /root/backup.sh #删除 1 1 * * 1 /bin/sh /root/del_backup.sh
#backup.sh内容
#!/bin/bash #crontab #1 */6 * * * /bin/sh /*/backup.sh now=`date +%Y%m%d%H%M%S` #用来识别备份文件 dmpfile=backup_$now.dmp DATA_PUMP_DIR=/u01/app/oracle/admin/moe1/dpdump /opt/oracle/11.2.0/bin/expdp user/pass@moe1 DUMPFILE=$dmpfile DIRECTORY=DATA_PUMP_DIR full=y compression=all tar cjf ${DATA_PUMP_DIR}/${dmpfile}.bz2 ${DATA_PUMP_DIR}/${dmpfile} if [ -f ${DATA_PUMP_DIR}/${dmpfile}.bz2 ];then rm -rf ${DATA_PUMP_DIR}/${dmpfile};fi
#del_backup.sh内容
#!/bin/bash #crontab #1 1 * * 1 /bin/sh /*/del_backup.sh export bak_path=/backup # > 90days for val in `find ${bak_path} -mtime +90 -name "*.bz2" | grep -v 'backup_......\(1306\)'`;do rm -rf ${val};done # > 30days && < 90days for val in `find ${bak_path} -mtime -90 -mtime +30 -name "*.bz2" |grep -E -v 'backup_......(0606|1306|2006|2706)'`;do rm -rf ${val};done # > 7days && < 30days for val in `find ${bak_path} -mtime -30 -mtime +7 -name "*.bz2" |grep -E -v 'backup_........06'`;do rm -rf ${val};done
#用来创建测试文件的脚本
#!/bin/bash yearN=$(date '+%Y') tmpDoc="/tmp/tmpDoc/${yearN}" mkdir -p "${tmpDoc}" && cd "${tmpDoc}" || exit 1 for((i=1;i<=12;i++));do montht=$i if [ "${#montht}" == "1" ];then montht="0${i}";fi mkdir -p "${tmpDoc}/${montht}" for((j=1;j<=31;j++));do dayt=$j if [ "${#dayt}" == "1" ];then dayt="0$j";fi touch -t "${yearN}${montht}${dayt}$(date '+%H%M.%S')" "${tmpDoc}/${montht}/${dayt}.file" done done
2023-03-27
整合的备份脚本
#!/bin/bash path0=/opt/mysql backup0="$path0/backup" tmp0="$path0/tmp" year0=$(date '+%Y') month0=$(date '+%m') day0=$(date '+%d') workdoc="$backup0/$year0/$month0" tmpdoc="$tmp0/$year0/$month0" #mysql backup #2month daily #2month~5month weekly #5month~1year monthly #for backup mkdir -p "$workdoc" mkdir -p "$tmpdoc" /usr/bin/mysqldump -uroot -pyourpass yourdb > "$workdoc/$day0.sql" if [ -f "$workdoc/$day0.sql" ];then cd "$workdoc" # tar cjf - "$day0.sql" | openssl des3 -salt -k 'yourpass' -out "$day0.bz2" tar czf "$day0.tar.gz" "$day0.sql" if [ -f "$workdoc/$day0.tar.gz" ];then rm -rf "$workdoc/$day0.sql";fi fi #for delete #5month~1year monthly for file in $(find "$backup0" -mtime +150 -name "*.tar.gz" | grep -v '01.tar.gz$');do filedoc=$(echo ${file%/*} | sed "s#$backup0#$tmp0#g") mkdir -p "$filedoc" if ! mv "$file" "$filedoc/";then exit;fi done #2month~5month weekly for file in $(find "$backup0" -mtime -150 -mtime +60 -name "*.tar.gz" | grep -v '1.tar.gz$');do filedoc=$(echo ${file%/*} | sed "s#$backup0#$tmp0#g") mkdir -p "$filedoc" if ! mv "$file" "$filedoc/";then exit;fi done
© 著作权归作者所有
下一篇: openssh openssl 升级
文章评论(0)