CPU使用率获取方法
#CPU使用率
#!/bin/sh
#
#脚本功能描述:依据/proc/stat文件获取并计算CPU使用率
#
#CPU时间计算公式:CPU_TIME=user+system+nice+idle+iowait+irq+softirq
#CPU使用率计算公式:cpu_usage=(idle2-idle1)/(cpu2-cpu1)*100
#默认时间间隔
TIME_INTERVAL=5
time=$(date "+%Y-%m-%d %H:%M:%S")
LAST_CPU_INFO=$(cat /proc/stat | grep -w cpu | awk '{print $2,$3,$4,$5,$6,$7,$8}')
LAST_SYS_IDLE=$(echo $LAST_CPU_INFO | awk '{print $4}')
LAST_TOTAL_CPU_T=$(echo $LAST_CPU_INFO | awk '{print $1+$2+$3+$4+$5+$6+$7}')
sleep ${TIME_INTERVAL}
NEXT_CPU_INFO=$(cat /proc/stat | grep -w cpu | awk '{print $2,$3,$4,$5,$6,$7,$8}')
NEXT_SYS_IDLE=$(echo $NEXT_CPU_INFO | awk '{print $4}')
NEXT_TOTAL_CPU_T=$(echo $NEXT_CPU_INFO | awk '{print $1+$2+$3+$4+$5+$6+$7}')
#系统空闲时间
SYSTEM_IDLE=`echo ${NEXT_SYS_IDLE} ${LAST_SYS_IDLE} | awk '{print $1-$2}'`
#CPU总时间
TOTAL_TIME=`echo ${NEXT_TOTAL_CPU_T} ${LAST_TOTAL_CPU_T} | awk '{print $1-$2}'`
CPU_USAGE=$(echo ${SYSTEM_IDLE} ${TOTAL_TIME} | awk '{printf "%.2f", 100-$1/$2*100}')
#打开CPU重用和快速回收
vi /etc/sysctl.conf
编辑文件,加入以下内容:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
然后执行/sbin/sysctl -p让参数生效
net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
net.ipv4.tcp_fin_timeout 修改系統默认的TIMEOUT时间
reuse=$(cat /etc/sysctl.conf|grep net.ipv4.tcp_tw_reuse)
if [ -n "$reuse" ];then
sed -i "s/^net.ipv4.tcp_tw_reuse.*/net.ipv4.tcp_tw_reuse = 1/" /etc/sysctl.conf
else
echo net.ipv4.tcp_tw_reuse = 1 >> /etc/sysctl.conf
fi
recycle=$(cat /etc/sysctl.conf|grep net.ipv4.tcp_tw_recycle)
if [ -n "$recycle" ];then
sed -i "s/^net.ipv4.tcp_tw_recycle.*/net.ipv4.tcp_tw_recycle = 1/" /etc/sysctl.conf
else
echo net.ipv4.tcp_tw_recycle = 1 >> /etc/sysctl.conf
fi
sysctl -p
#时间显示
anynowtime=`date +'%Y-%m-%d_%H:%M:%S'`
#获取逻辑CPU个数
#!/bin/bash
echo "逻辑CPU个数:"
cat /proc/cpuinfo|grep processor|wc -l
echo "逻辑CPU如下:"
cat /proc/cpuinfo|grep processor
#获取负载
awk '{print $1}' /proc/loadavg
每日
#创建备份脚本
anynowtime=`date +'%Y-%m-%d_%H:%M:%S'
tar zcf /var/log/${anynowtime}.tar.gz /var/log/*
#备份日志
find /home/josee/ -mtime +10 -name "*.tar.gz" -exec rm -rf {} \;
统计ip访问前十
cat /data/bkce/logs/nginx/paas_access.log |awk -F" " '{print $1,$6,$7,$8}'|sort | uniq -c | sort -n -k1 | tail -fn 10
#关闭selinux
getenforce=`getenforce`
if [ $getenforce != "Disabled" ];then
sed -i "s/^SELINUX=.*/SELINUX=Disabled/" /etc/selinux/config
setenforce 0
fi
进程判断并启动进程
service=`netstat -tunalp|grep nginx|awk -F" " '{print $1}'`
if [ -n "$service" ];then
/opt/logicsvr/logicsvr -c /opt/logicsvr/logicsvr.conf
fi
#修改文件最大打开数
sed -i '/nofile/{d}' /etc/security/limits.conf
echo "* soft nofile 204800" >>/etc/security/limits.conf
echo "* hard nofile 204800" >>/etc/security/limits.conf
#批量创建用户
name="user0"
pass="admin@123"
for (( i=0;i<=9;i=i+1))
do
# 用户名以输入用户名+序号组成
/usr/sbin/useradd $name$i -d /home/$name$i &> /dev/null
# 创建默认密码
echo $pass | /usr/bin/passwd --stdin $name$i &> /dev/null
done
#干掉sshd
sshd=$(netstat -tunlap|grep sshd|grep ESTABLISHED|awk -F" " '{print $7}'|awk -F"/" '{print $1}')
if [ -n "$sshd" ];then
netstat -tunlap|grep sshd|grep ESTABLISHED|awk -F" " '{print $7}'|awk -F"/" '{print $1}'|xargs kill -9
fi
#解压
cd /opt
tar -zxvf logicsvr.tar.gz
#修改nginx第一内网地址
ip=$(ifconfig |grep inet|sed -n "1p"|awk -F " " '{print $2}')
sed -i "s/listen.*80/listen $ip:80/" /etc/nginx/nginx.conf
nginx -s reload
#获取内网IP
ip=$(ifconfig |grep inet|sed -n "1p"|awk -F " " '{print $2}')
#修改配置文件的ip
sed -i "s/^address.*/address=$ip/" /opt/logicsvr/logicsvr.conf
#启动进程
/data/logicsvr/logicsvr -c /data/logicsvr/logicsvr.conf
#logicsvr进程判断并启动进程
logicsvr=`netstat -tunalp|grep logicsvr|awk -F" " '{print $1}'`
if [ -n "$logicsvr" ];then
/data/logicsvr/logicsvr -c /data/logicsvr/logicsvr.conf
mkdir -p /data/log
echo "`date` 拉起logicsvr进程" >> /data/log/logicsvr_monitor.log
fi
浙公网安备 33010602011771号