维护CentOS6.2下的一些常用脚本之二

来源:互联网 发布:淘宝0.1元商品 编辑:程序博客网 时间:2024/04/28 10:28

服务器监控的一些代码,备份,学习,待优化用#脚本


1,监控数据库的Processlist,超过5条不为空的记录则打印输出,CTRL+C退出

#/bin/sh# usage:# bash filename export MYSQLBIN=/usr/local/mysql/binexport MYSQLHOST='localhost'export MYSQLPORT=3336export MYSQLUSER=rootexport MYSQLPSWD='********'export TMPFILE=/tmp/mysqlstatus.dump.txtexport ty=20echo ■■■■■■ ${MYSQLBIN}/mysql  》FOR Show Processlist ※※※※※※※※※※※※※※※※※※※※while [ "1" -eq "1" ]do        export CURRENTTIME=`date +%T`        echo START------------ $CURRENTTIME >$TMPFILE        $MYSQLBIN/mysql -u$MYSQLUSER -p$MYSQLPSWD \            --host $MYSQLHOST -P$MYSQLPORT \            -e "show processlist" >> $TMPFILE         sed -i -e '/NULL/d' $TMPFILE        export LINES=`wc -l $TMPFILE | awk '{print $1}'`        LINES=$[LINES -2]        echo END-------------- $LINES >>$TMPFILE        echo  >>$TMPFILE        if [ "$LINES" -gt "5" ]        then                cat $TMPFILE        else                ty=$[ty+1]                if [ "$ty" -gt "20" ]                then                        export ty=0                        echo                        echo -n "$CURRENTTIME : "                fi                echo -n "$LINES | "                sleep 3        fi        sleep 3done


#2,清除QMAIL的邮件队列,不清楚为啥加入任务计划就不执行,手动执行又没问题。其中grep -v fix_qmail是排除自身的文件名:

#####################################################            Clear Qmail's queue##                        --Ecen.thq 2011.11.02#####################################################!/bin/bashclearechoecho clear mail queueecho ===============================================echo `date +%Y/%m/%d-%H:%M:%S`echo/etc/init.d/igenus-qmail stopps aux|grep qmail|grep -v fix_qmail|awk '{print $2}'|xargs kill -9mv /var/qmail/queue /var/qmail/queue_bak`date "+%m%d"`mkdir /var/qmail/queue/var/qmail/bin/queue-fix /var/qmail/queue/etc/init.d/igenus-qmail startecho ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ps -aef|grep qmailecho ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ " ps -aef|grep qmail "echo  `date +%Y/%m/%d-%H:%M:%S` >> qmail_fix.logechoecho =================over=================

#3,mysql每日备份的脚本

#!/bin/sh# mysql_backup.sh: backup mysql databases and keep newest 5 days backup.## ----------------------------------------------------------------------# your mysql login information# db_user is mysql username# db_passwd is mysql password# db_host is mysql host# -----------------------------db_user="root"db_passwd="********"db_host="localhost"# the directory for story your backup file.backup_dir="/backup/mysql/"# date format for backup file (dd-mm-yyyy)time="$(date +"%M-%H-%d-%m-%Y")"# mysql, mysqldump and some other bin's pathMYSQL="mysql"MYSQLDUMP="mysqldump"MKDIR="mkdir"RM="rm"MV="mv"GZIP="gzip"# check the directory for store backup is writeabletest ! -w $backup_dir && echo "Error: $backup_dir is un-writeable." && exit 0# the directory for story the newest backuptest ! -d "$backup_dir/backup.0/" && $MKDIR "$backup_dir/backup.0/"# get all databasesall_db="$($MYSQL -u $db_user -h $db_host -p$db_passwd -Bse 'show databases')"for db in $all_dbdo        $MYSQLDUMP -u $db_user -h $db_host -p$db_passwd $db | $GZIP -9 > "$backup_dir/backup.0/$time.$db.gz"done# delete the oldest backuptest -d "$backup_dir/backup.5/" && $RM -rf "$backup_dir/backup.5"# rotate backup directoryfor int in 4 3 2 1 0do        if(test -d "$backup_dir"/backup."$int")        then                next_int=`expr $int + 1`                $MV "$backup_dir"/backup."$int" "$backup_dir"/backup."$next_int"        fidoneexit 0;