文档库

最新最全的文档下载
当前位置:文档库 > 常用的Linux下shell脚本

常用的Linux下shell脚本

常用的Linux下shell脚本

我们经常在windows下进行性能的相关测试,对于模拟windows的操作系统的一些常见的场景我们也有比较多的工具以及方法,但是这些工具以及方法对于linux操作系统就肯定不适用了,而针对linux操作系统的工具目前也比较少,但是linux操作系统上的shell编辑器确提供了强大的工作,运用shell脚本来达到控制计算机的目的,如控制网络、控制CPU、记录资源消耗等,shell脚本的资源消耗低,简单灵活易用是一种非常合适的方式。本文介绍几个测试当中常用的辅助测试的shell脚本,脚本的优点是使用简便快捷,新手也很容易快速掌握。

第一个是网卡的自动休眠与启动。

#!/usr/bin/perl

while(1)

{

system("ifconfig eth0 down");

sleep(90);

system("ifconfig eth0 up");

sleep(80);

}

其中eth0为要启停的网卡名称,文中的90为网卡停止的时间,单位为S,80为网卡启动的时间,单位也为S。

使用方法:

1.登录测试机,使用vi 1.sh 新建一个sh脚本

2.将以上脚本复制粘贴到1.sh中

3.复制文件可执行权限chmod 755 1.sh

4.使用./1.sh执行即可

常用的Linux下shell脚本

注意:停止的方法为找到1.sh的进程,杀掉该进程即可。

常用的Linux下shell脚本

第二个为使用一个脚本消耗CPU的资源,常用于性能或者压力测试。

#! /bin/sh

# filename killcpu.sh

if [ $# != 1 ] ; then

echo "USAGE: $0 "

exit 1;

fi

for i in `seq $1`

do

echo -ne "

i=0;

while true

do

i=i+1;

done" | /bin/sh &

pid_array[$i]=$! ;

done

for i in "${pid_array[@]}"; do

echo 'kill ' $i ';';

done

使用方法如上,只是执行方法略有不同,加入我们要消耗4颗CPU的资源,则执行时使用./1.sh 4 来运行程序即可

执行之后会显示消耗CPU的进程编号,会不想使其在消耗CPU资源则直接杀掉该进程即可

常用的Linux下shell脚本

执行之前的CPU使用率

常用的Linux下shell脚本

执行脚本之后的情况

常用的Linux下shell脚本

第三个为记录资源消耗:

#!/bin/bash

interval=1s

if [ -n "$1" ]; then

proname=$1

else

proname="stream"

fi

ps aux | grep $proname | grep -v grep > /dev/null

if [ $? -eq 0 ]

then

echo "start ok !"

else

echo "error exit !!!"

exit 0

fi

while true

do

#processid=$(ps -ef | grep -w $proname | grep -v grep | awk '{print $2}') processid=$(pidof $proname)

time=`date +"%Y-%m-%d %H:%M:%S"`

fdcount=$(ls /proc/$processid/fd | wc -l)

tdcount=$(ps -efL | grep -w $proname | wc -l)

echo "$time---------------------------" >> 2.test

echo "[$proname] handle:$fdcount thread:$tdcount " >> 2.test

ps aux | grep $proname | grep -v grep >> 2.test

top -bn 1 -p $processid >> 2.test

echo "$time-----process [$proname] status write in log <<2.test>>"

sleep "$interval"

done

改文件为60S记录一次,并将记录的内容保存在2.test内