测试sshd中maxstartup参数

文件目录:/etc/ssh/sshd_config
maxstartup 是限制处于联机页面的连接数,有2种形式
三元形式:10:30:60表示当连接数到达10时,之后的连接有30的概率被拒绝掉,当连接数到达10时,之后的连接有30的概率被拒绝掉
数字形式:10 连接数达到10后,之后的连接全部拒绝

        因为此参数是表示同时连接总数,当时的想法是要么是10个进程并行,要么直接用for循环在命令后面加个&后台运行,最后选择的还是进程并行

#!/bin/bash
#定义变量
sftp_port=22
sftp_user=sftpadmin
sftp_ip=127.0.0.1
sftp_passwd=123123
#sftp登录判断函数
sftp_join(){
#echo ls |lftp -u $sftp_user,$sftp_passwd sftp://$sftp_ip:$sftp_port
/usr/bin/expect << EOF
spawn sftp  ${sftp_user}@${sftp_ip}
expect {
 "*password:" { send "${sftp_passwd}\r" }
 }
expect "sftp>"
send "bye \r"
EOF
if [ $? -eq 0 ]; then
	echo "登录成功"
else
	echo "登录失败!"
fi
}
#定义线程数
thread(){
>$0.log 
tmp_fifofile='$$.fifo'
mkfifo $tmp_fifofile
exec 6<>$tmp_fifofile
rm $tmp_fifofile
thread_num=15
for ((i=0;i<${thread_num};i++));do
	echo
done >&6
}

#开始测试
start_time=`date +"%H:%M:%S"`

thread

for i in {1..15};do
	read -u6
	{
	#sleep 2
	#echo "success"$i
	sftp_join
	echo >&6 
	} &
done  |tee maxstartup.log
wait
#success_num=cat $0-$start_time.log |grep "登录成功"|wc -l
#failed_num=cat $0-$start_time.log |grep "登录失败"|wc -l
success_num=`cat maxstartup.log |grep "成功"|wc -l`
failed_num=`cat maxstartup.log |grep "失败"|wc -l`
#定义脚本运行的结束时间
stop_time=`date +"%H:%M:%S"`
echo "脚本开始时间:$start_time"
echo "脚本结束时间:$stop_time"
echo "总次数是:$thread_num"
echo "失败的次数是:$failed_num"
echo "成功的次数是:$success_num"
#exec 6<$-
exec 6>$-

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值