BUGMrLi 发表于 2023-5-25 10:37

常用的日志备份脚本

MySQL数据库备份脚本

      #!/bin/bash
DAY=`date +%Y%m%d`
SIZE=`du -sh /var/lib/mysql`
echo "Date: $DAY" >> /tmp/dbinfo.txt
echo "Data Size: $SIZE" >> /tmp/dbinfo.txt
cd /opt/dbbak &> /dev/null || mkdir /opt/dbbak
tar zcf /opt/dbbak/mysqlbak-${DAY}.tar.gz /var/lib/mysql /tmp/dbinfo.txt &> /dev/null
rm -f /tmp/dbinfo.txt

crontab -e
55 23 */3 * * /opt/dbbak/dbbak.sh
#mkdir /mysqlbak
#mkdir /mysqlbinlog
#service mysqld start
cd /shell
#vi webdb.sh
#!/bin/bash
day=`date +%F`
mysqldump -hlocalhost -uroot -p123 webdb > /mysqlbak/webdb-${day}.sql
mysql -hlocalhost -uroot -p -e "flush logs"
tar zcf /mysqlbinlog.tar.gz /var/lib/mysql/mysqld-bin.0*
#chmod +x webdb.sh
#crontab -e
30 24 * * 7 /shell/webdb.sh
#每周日半夜24点半,对数据库服务器上的webdb库做完整备份
#每备份文件保存到系统的/mysqlbak目录里
#用系统日期做备份文件名 webdb-YYYY-mm-dd.sql
#每次完整备份后都生成新的binlog日志
#把当前所有的binlog日志备份到/mysqlbinlog目录下

Linux日志备份脚本
#!/bin/bash
:<<BLOCK
每天1:00 备份/var/log 目录下前一天的日志文件并存放在当前目录中btslog 目录中,
然后删除15天前的log备份文件,实用shell脚本完成。日志格式:btsvr.log.2020-09-30,
打包备份文件搁置为btsvr.log.2020-09-30,.tar.gz
BLOCK

yesterday=$(date+"%Y-%m-%d" -d"-1 days")
backupdir=/server/backup/btslog
[ ! -d $backupdir ] && mkdir -p $backupdir

backup_yes() {
    cd ${backupdir}
    mv /var/log/btsvr.log.${yesterday} ${backupdir}
    tar -czvf btsvr.log.${yesterday}.tar.gz btsvr.log.${yesterday}
   
    if [ $? -eq 0 ];then
      rm -f ./btsvr.log.${yesterday}
    fi
}

delete_old() {
    find ./ -name "*.tar.gz" -ctime +15-exec rm -rf {} \;
}
backup_yes
delete_old
# crontab -e 定时任务
# 0 1 * * * /bin/bash /server/scripts/bak_log.sh &> /dev/null

Windows日志备份脚本
//客户根据自己的需求进行更改,也可以将目录替换成中间件的日志地址进行备份。

@echo off

set dir=C:\backup\log\winevt
set tobeBackupDir=C:\Windows\System32\winevt\Logs
echo -------------------------
echo 待备份目录:%tobeBackupDir%
echo -------------------------
if not exist %tobeBackupDir% (
    echo.
    echo 待备份目录不存在,请检查!
    goto :end
)
goto :backup

::备份方法
:backup
set ymd=%date:~0,4%%date:~5,2%%date:~8,2%
set backupDir=%dir%-%ymd%
echo.
echo *********备份开始*********
echo -------------------------
echo 备份目录:%backupDir%
echo -------------------------

if not exist %backupDir% (
    mkdir %backupDir%
)
::/e:拷贝所有子目录(包括空子目录)。
::/d:只拷贝文件日期与在目标文件后的文件(即修改过的源文件)。
::/h:同时拷贝隐藏文件和系统文件。
::/y:复制文件审核设置(不显示已有文件覆盖确认)。
xcopy /e/d/h/y %tobeBackupDir% %backupDir%
echo *********备份结束*********

::结束程序
:end
echo.
pause



越洋吟月 发表于 2023-5-25 15:57

学习了。。。
页: [1]
查看完整版本: 常用的日志备份脚本