磁盘清理:
#!/bin/bash
#
# Copyright (c) 2015 Baidu.com, Inc. All Rights Reserved
#
# Author: zhaixiaona
# Date: 2019/09/03
# Brief:
# check disk
# Globals:
# Arguments:
# Returns:
# succ:0
# fail:1

########## 1. swiches
#set -x # set -o xtrace
#set -e # set -o errexit
#set -u # set -o nounset
#set -o pipefail
########## 2. source files
#source ~/.bash_profile 2>/dev/null
#source lib/some_lib.sh
########## 3. envionment variables
export WORKDIR=dirname $(readlink -f $0)
#export LOCAL_HOSTNAME=”${HOSTNAME%’.baidu.com’}”
#export LOCAL_IP=$(hostname -i)
#export PATH=”${WORK_DIR}:${PATH}”
export CUR_DATE=”$(date “+%Y%m%d”)”
#export CUR_TIMESTAMP1=$(date “+%Y%m%d
%H%M%S”)
#export CUR_TIMESTAMP2=$(date “+%Y%m%d%H%M%S”)
#export disk=cd $WORK_DIR && df -h |grep -E 'home|ssd' |awk '{print $5}'|awk -F '%' '{print $1}'
#if [ $disk -gt 85 ]; then
#echo “hostname $disk” >> /home/mysql/zhaixiaona/disknesoi.txt
#else echo “wuwenti”
#fi

sh node-ssh.sh “ df -h |grep -E ‘home|ssd’ |awk ‘{print \$5}’ |awk -F ‘%’ ‘{if ( \$1 >= 85 ) print }’” >> nesoiddisk.txt
————————
日志清理
#!/bin/bash

. ~/.bashrc 2>/dev/null

Show notice
function show_info () {
echo -e “\033[1;32m$@\033[0m” >&1
}

Show warnings
function show_warning () {
echo -e “\033[1;33m$@\033[0m” >&2
}

Show errors
function show_error () {
echo -e “\033[1;97;41m$@\033[0m” >&2
}

workdir=$(dirname $(readlink -f $0))
cd ${workdir}

yesterday=$(date -d ‘yesterday’ ‘+%Y%m%d’)
dbproxy_dirs=( “dbproxy_pay_miscdb_6052” “dbproxy_paymiscdb_6352” “dbproxy_paycenterdb_6371” )
for j in ${dbproxy_dirs[@]}; do
show_warning “** Processing ‘$j’: log time ‘${yesterday}’ **
for i in $(find -mtime +”30” -name “${j}.“); do
show_warning “Removing $i”
/usr/local/bin/bt-rm $i
done
awk ‘{count=$1; $1=””; a[$0] += count}END{for(i in a){print a[i]i}}’ ${j}.${yesterday}.
| sort -n > ${j}.${yesterday}
done

————————————————————
#!/bin/bash
dtm_dir=(
“dtm_5.6_offline”
)

expire_day=7
for dir in ${dtm_dir[*]}; do
cd /home/mysql/dtm/${dir}/log/
if [[ $? -ne 0 ]]; then
continue
fi
for i in $(find -mtime +”${expire_day}”); do
echo $i
/usr/local/bin/bt-rm $i
done
done
————————————————————
杀链接
#将所有运行时间超过10s的连接kill掉
mysql.local -NBe “show processlist” | grep -v “system user” | awk ‘{if($6 > 10) print $1}’ | while read line ;do mysql.local -NBe “kill ${line}”;done

将所有运行时间超过10s处于Sending data状态的连接kill掉

mysql.local -NBe “show processlist” | grep -v “system user” | grep “Sending data” | awk ‘{if($6 > 10) print $1}’ | while read line ;do mysql.local -NBe “kill ${line}”;done

将所有运行时间超过10s处于Sending data和Sorting result状态的连接kill掉

mysql.local -NBe “show processlist” | grep -v “system user” | grep -E “Sending data|Sorting result” | awk ‘{if($6 > 10) print $1}’ | while read line ;do mysql.local -NBe “kill ${line}”;done

将所有运行时间超过10s处于Sorting result状态的连接kill掉

mysql.local -NBe “show processlist” | grep -v “system user” | grep “Sorting result” | awk ‘{if($6 > 10) print $1}’ | while read line ;do mysql.local -NBe “kill ${line}”;done
————————————————
数据库checksum
#!/bin/sh

MYSQL_BASEDIR=’/home/mysql/mysql’
DEFAULTS_EXTRA_FILE=”$MYSQL_BASEDIR/etc/user.root.cnf”
DEFAULTS_EXTRA_FILE_OPTION=”—defaults-extra-file=$DEFAULTS_EXTRA_FILE”
MYSQL=”$MYSQL_BASEDIR/bin/mysql $DEFAULTS_EXTRA_FILE_OPTION “

date=date +%Y%m%d

mkdir -p /home/mysql/opdir/$date && cd /home/mysql/opdir/$date
rm -f tmp_checksum.txt &> /dev/null

THREAD_NUM=10;
#有的时候我们跑一个批量的脚本并发不能太大,需要对线程控制。这个就是本脚本使用的场景。
TMP_FIFO_FILE=./.fifo
##
表示当前执行文件的PID
mkfifo “$TMP_FIFO_FILE”
# 新建一个fifo类型的文件
exec 6<>”$TMP_FIFO_FILE”
# 将fd6指向fifo类型

echo “start time is date
#RESULT_FILE=’/home/mysql/opdir/data_refactor/speech_checksums_offline’

for ((j=0;j<$THREAD_NUM;j++))
do
echo
done >&6
#在fd6中放置了$thread个回车符

for DATABASE in $MYSQL -NBe 'show databases' | grep "SF\|beidou"
#for DATABASE in $MYSQL -NBe 'show databases' | grep "union4"
#for DATABASE in $MYSQL -NBe 'show databases' | grep -v "information_schema\|monitor\|mysql\|test\|baidu_dba"
#for DATABASE in $MYSQL -NBe 'show databases' | grep "ubisource"<br />for DATABASE in$MYSQL -NBe ‘show databases’ | grep “DB”<br />do<br /> for TABLE in$MYSQL -NBe “show tables from $DATABASE”<br /> do<br /> read -u6<br />#一个read -u6命令执行一次,就从fd6中减去一个回车符,然后向下执行<br /> {<br /> checksum=$MYSQL -NBe “checksum table ${DATABASE}.${TABLE}”; <br /> rowcount=$MYSQL -NBe “select count(*) from ${DATABASE}.${TABLE}”;`
echo $checksum $rowcount >> tmp_checksum.txt
echo >&6
#当进程结束以后,再向fd6中加上一个回车符,即补上了read -u6减去的那个
}&
done

$MYSQL -e “checksum table corpus.speech” | grep speech

done

wait
exec 6>&-
#关闭fd6

cat tmp_checksum.txt | sort > checksum.txt
rm tmp_checksum.txt $$.fifo &> /dev/null

echo “success”
echo “ end time is date