文件目录:/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>$-