#!/bin/sh
## 2007-11-6
DELLOG="/usr/local/logs/del-sqlbin.log.`date +%d`"
DELTMP="/usr/local/logs/del-sqlbin.tmp"
MAIL_ADDR="xxx@xxx.xx"
exec &>$DELLOG
DT=`date +'%Y-%m-%d %T'`
SINGLE=0
sleep 30
hostname
echo `date +'%Y-%m-%d %T'`
echo "EXEC>>"
echo "PURGE MASTER LOGS BEFORE '$DT';"
echo "PURGE MASTER LOGS BEFORE '$DT';" >$DELTMP
mysql -uroot -pxxx <$DELTMP
if [ $? = 0 ];then
echo "Purge master logs sucess!"
else
echo "Purge master logs failure!"
SINGLE=1
fi
echo "--------------------------------"
echo
if [ $SINGLE = 1 ];then
mail -s "Purge_master_logs_err" $MAIL_ADDR <$DELLOG
fi
yejr 回复于:2007-11-09 22:14:54
不错,支持
mysnopy 回复于:2007-11-15 12:41:28
能不能详细解释下?
ypingyuan 回复于:2007-11-23 10:19:31
引用:原帖由 mysnopy 于 2007-11-15 12:41 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=7594243&ptid=1012110]
能不能详细解释下?
MySQL 5.1 Reference Manual
12.6.1.1. PURGE MASTER LOGS Syntax
PURGE {MASTER | BINARY} LOGS TO 'log_name'
PURGE {MASTER | BINARY} LOGS BEFORE 'date'
Example:
PURGE MASTER LOGS TO 'mysql-bin.010';
PURGE MASTER LOGS BEFORE '2003-04-02 22:46:26';
yueliangdao0608 回复于:2008-03-06 11:55:40
支持一下,好脚本!:em09:
tiancongxin 回复于:2008-04-05 00:08:11
其实如果你对binlog要求不是太高的话,可以设置自动清除的,mysql有一个参数expire_logs_days ,即保留多长时间的binlog
set @expire_logs_days=xxx;
flush logs;
|