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

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


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

#/bin/sh # usage: # bash filename export MYSQLBIN=/usr/local/mysql/bin export MYSQLHOST='localhost' export MYSQLPORT=3336 export MYSQLUSER=root export MYSQLPSWD='********' export TMPFILE=/tmp/mysqlstatus.dump.txt export ty=20 echo ■■■■■■ ${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 3 done


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

#################################################### # Clear Qmail's queue # # --Ecen.thq 2011.11.02 #################################################### #!/bin/bash clear echo echo clear mail queue echo =============================================== echo `date +%Y/%m/%d-%H:%M:%S` echo /etc/init.d/igenus-qmail stop ps aux|grep qmail|grep -v fix_qmail|awk '{print $2}'|xargs kill -9 mv /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 start echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ps -aef|grep qmail echo ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ " ps -aef|grep qmail " echo `date +%Y/%m/%d-%H:%M:%S` >> qmail_fix.log echo echo =================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 path MYSQL="mysql" MYSQLDUMP="mysqldump" MKDIR="mkdir" RM="rm" MV="mv" GZIP="gzip" # check the directory for store backup is writeable test ! -w $backup_dir && echo "Error: $backup_dir is un-writeable." && exit 0 # the directory for story the newest backup test ! -d "$backup_dir/backup.0/" && $MKDIR "$backup_dir/backup.0/" # get all databases all_db="$($MYSQL -u $db_user -h $db_host -p$db_passwd -Bse 'show databases')" for db in $all_db do $MYSQLDUMP -u $db_user -h $db_host -p$db_passwd $db | $GZIP -9 > "$backup_dir/backup.0/$time.$db.gz" done # delete the oldest backup test -d "$backup_dir/backup.5/" && $RM -rf "$backup_dir/backup.5" # rotate backup directory for int in 4 3 2 1 0 do if(test -d "$backup_dir"/backup."$int") then next_int=`expr $int + 1` $MV "$backup_dir"/backup."$int" "$backup_dir"/backup."$next_int" fi done exit 0;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值