1varnishtest "Health-checks" 2feature ignore_unknown_macro 3 4#REQUIRE_VERSION=1.8 5#EXCLUDE_TARGETS=freebsd,osx,generic 6#REGTEST_TYPE=slow 7 8# This script start 40 servers named s0 up to s39. 9# For 0 <= i <= 19: 10# - s(i) and s(i+1) belong to backend be(2*i+1), 11# - fe(2*i+1) backend is configured to used be(2*i+1) backend. 12# - only s(2*i+1) servers have health-checks enabled, 13# - we start 20 clients named s(2*i+1) which connect to fe(2*i+1) frontend, 14# - so that to ensure that health-checks do not consume any connection 15# (any varnishtest server without -repeat <n> with n > 1 accepts 16# only one connection). 17 18# Note that the first syslog message received is: "Proxy <name> started." 19syslog S1 -level notice { 20 recv 21 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be1 started." 22 recv 23 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be1/srv1 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP" 24} -start 25 26syslog S3 -level notice { 27 recv 28 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be3 started." 29 recv 30 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be3/srv3 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP" 31} -start 32 33syslog S5 -level notice { 34 recv 35 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be5 started." 36 recv 37 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be5/srv5 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP" 38} -start 39 40syslog S7 -level notice { 41 recv 42 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be7 started." 43 recv 44 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be7/srv7 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP" 45} -start 46 47syslog S9 -level notice { 48 recv 49 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be9 started." 50 recv 51 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be9/srv9 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP" 52} -start 53 54syslog S11 -level notice { 55 recv 56 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be11 started." 57 recv 58 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be11/srv11 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP" 59} -start 60 61syslog S13 -level notice { 62 recv 63 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be13 started." 64 recv 65 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be13/srv13 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP" 66} -start 67 68syslog S15 -level notice { 69 recv 70 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be15 started." 71 recv 72 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be15/srv15 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP" 73} -start 74 75syslog S17 -level notice { 76 recv 77 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be17 started." 78 recv 79 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be17/srv17 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP" 80} -start 81 82syslog S19 -level notice { 83 recv 84 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be19 started." 85 recv 86 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be19/srv19 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP" 87} -start 88 89syslog S21 -level notice { 90 recv 91 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be21 started." 92 recv 93 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be21/srv21 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP" 94} -start 95 96syslog S23 -level notice { 97 recv 98 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be23 started." 99 recv 100 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be23/srv23 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP" 101} -start 102 103syslog S25 -level notice { 104 recv 105 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be25 started." 106 recv 107 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be25/srv25 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP" 108} -start 109 110syslog S27 -level notice { 111 recv 112 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be27 started." 113 recv 114 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be27/srv27 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP" 115} -start 116 117syslog S29 -level notice { 118 recv 119 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be29 started." 120 recv 121 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be29/srv29 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP" 122} -start 123 124syslog S31 -level notice { 125 recv 126 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be31 started." 127 recv 128 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be31/srv31 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP" 129} -start 130 131syslog S33 -level notice { 132 recv 133 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be33 started." 134 recv 135 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be33/srv33 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP" 136} -start 137 138syslog S35 -level notice { 139 recv 140 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be35 started." 141 recv 142 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be35/srv35 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP" 143} -start 144 145syslog S37 -level notice { 146 recv 147 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be37 started." 148 recv 149 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be37/srv37 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP" 150} -start 151 152syslog S39 -level notice { 153 recv 154 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Proxy be39 started." 155 recv 156 expect ~ "[^:\\[ ]\\[${h1_pid}\\]: Health check for server be39/srv39 succeeded, reason: Layer4 check passed, check duration: [[:digit:]]+ms, status: 1/1 UP" 157} -start 158 159server s0 {} -start 160server s2 {} -start 161server s4 {} -start 162server s6 {} -start 163server s8 {} -start 164server s10 {} -start 165server s12 {} -start 166server s14 {} -start 167server s16 {} -start 168server s18 {} -start 169server s20 {} -start 170server s22 {} -start 171server s24 {} -start 172server s26 {} -start 173server s28 {} -start 174server s30 {} -start 175server s32 {} -start 176server s34 {} -start 177server s36 {} -start 178server s38 {} -start 179 180server s1 { 181 rxreq 182 txresp 183} -start 184 185server s3 { 186 rxreq 187 txresp 188} -start 189 190server s5 { 191 rxreq 192 txresp 193} -start 194 195server s7 { 196 rxreq 197 txresp 198} -start 199 200server s9 { 201 rxreq 202 txresp 203} -start 204 205server s11 { 206 rxreq 207 txresp 208} -start 209 210server s13 { 211 rxreq 212 txresp 213} -start 214 215server s15 { 216 rxreq 217 txresp 218} -start 219 220server s17 { 221 rxreq 222 txresp 223} -start 224 225server s19 { 226 rxreq 227 txresp 228} -start 229 230server s21 { 231 rxreq 232 txresp 233} -start 234 235server s23 { 236 rxreq 237 txresp 238} -start 239 240server s25 { 241 rxreq 242txresp 243} -start 244 245server s27 { 246 rxreq 247 txresp 248} -start 249 250server s29 { 251 rxreq 252 txresp 253} -start 254 255server s31 { 256 rxreq 257 txresp 258} -start 259 260server s33 { 261 rxreq 262 txresp 263} -start 264 265server s35 { 266 rxreq 267 txresp 268} -start 269 270server s37 { 271 rxreq 272 txresp 273} -start 274 275server s39 { 276 rxreq 277 txresp 278} -start 279 280haproxy h1 -conf { 281 defaults 282 timeout client 1s 283 timeout server 1s 284 timeout connect 1s 285 balance first 286 default-server no-check inter 5ms downinter 1s rise 1 fall 1 287 288 backend be1 289 option log-health-checks 290 log ${S1_addr}:${S1_port} daemon 291 server srv1 ${s1_addr}:${s1_port} check 292 server srv0 ${s0_addr}:${s0_port} 293 294 backend be3 295 option log-health-checks 296 log ${S3_addr}:${S3_port} daemon 297 server srv3 ${s3_addr}:${s3_port} check 298 server srv2 ${s2_addr}:${s2_port} 299 300 backend be5 301 option log-health-checks 302 log ${S5_addr}:${S5_port} daemon 303 server srv5 ${s5_addr}:${s5_port} check 304 server srv4 ${s4_addr}:${s4_port} 305 306 backend be7 307 option log-health-checks 308 log ${S7_addr}:${S7_port} daemon 309 server srv7 ${s7_addr}:${s7_port} check 310 server srv6 ${s6_addr}:${s6_port} 311 312 backend be9 313 option log-health-checks 314 log ${S9_addr}:${S9_port} daemon 315 server srv9 ${s9_addr}:${s9_port} check 316 server srv8 ${s8_addr}:${s8_port} 317 318 backend be11 319 option log-health-checks 320 log ${S11_addr}:${S11_port} daemon 321 server srv11 ${s11_addr}:${s11_port} check 322 server srv10 ${s10_addr}:${s10_port} 323 324 backend be13 325 option log-health-checks 326 log ${S13_addr}:${S13_port} daemon 327 server srv13 ${s13_addr}:${s13_port} check 328 server srv12 ${s12_addr}:${s12_port} 329 330 backend be15 331 option log-health-checks 332 log ${S15_addr}:${S15_port} daemon 333 server srv15 ${s15_addr}:${s15_port} check 334 server srv14 ${s14_addr}:${s14_port} 335 336 backend be17 337 option log-health-checks 338 log ${S17_addr}:${S17_port} daemon 339 server srv17 ${s17_addr}:${s17_port} check 340 server srv16 ${s16_addr}:${s16_port} 341 342 backend be19 343 option log-health-checks 344 log ${S19_addr}:${S19_port} daemon 345 server srv19 ${s19_addr}:${s19_port} check 346 server srv18 ${s18_addr}:${s18_port} 347 348 backend be21 349 option log-health-checks 350 log ${S21_addr}:${S21_port} daemon 351 server srv21 ${s21_addr}:${s21_port} check 352 server srv20 ${s20_addr}:${s20_port} 353 354 backend be23 355 option log-health-checks 356 log ${S23_addr}:${S23_port} daemon 357 server srv23 ${s23_addr}:${s23_port} check 358 server srv22 ${s22_addr}:${s22_port} 359 360 backend be25 361 option log-health-checks 362 log ${S25_addr}:${S25_port} daemon 363 server srv25 ${s25_addr}:${s25_port} check 364 server srv24 ${s24_addr}:${s24_port} 365 366 backend be27 367 option log-health-checks 368 log ${S27_addr}:${S27_port} daemon 369 server srv27 ${s27_addr}:${s27_port} check 370 server srv26 ${s26_addr}:${s26_port} 371 372 backend be29 373 option log-health-checks 374 log ${S29_addr}:${S29_port} daemon 375 server srv29 ${s29_addr}:${s29_port} check 376 server srv28 ${s28_addr}:${s28_port} 377 378 backend be31 379 option log-health-checks 380 log ${S31_addr}:${S31_port} daemon 381 server srv31 ${s31_addr}:${s31_port} check 382 server srv30 ${s30_addr}:${s30_port} 383 384 backend be33 385 option log-health-checks 386 log ${S33_addr}:${S33_port} daemon 387 server srv33 ${s33_addr}:${s33_port} check 388 server srv32 ${s32_addr}:${s32_port} 389 390 backend be35 391 option log-health-checks 392 log ${S35_addr}:${S35_port} daemon 393 server srv35 ${s35_addr}:${s35_port} check 394 server srv34 ${s34_addr}:${s34_port} 395 396 backend be37 397 option log-health-checks 398 log ${S37_addr}:${S37_port} daemon 399 server srv37 ${s37_addr}:${s37_port} check 400 server srv36 ${s36_addr}:${s36_port} 401 402 backend be39 403 option log-health-checks 404 log ${S39_addr}:${S39_port} daemon 405 server srv39 ${s39_addr}:${s39_port} check 406 server srv38 ${s38_addr}:${s38_port} 407 408 frontend fe1 409 bind "fd@${fe1}" 410 use_backend be1 411 412 frontend fe3 413 bind "fd@${fe3}" 414 use_backend be3 415 416 frontend fe5 417 bind "fd@${fe5}" 418 use_backend be5 419 420 frontend fe7 421 bind "fd@${fe7}" 422 use_backend be7 423 424 frontend fe9 425 bind "fd@${fe9}" 426 use_backend be9 427 428 frontend fe11 429 bind "fd@${fe11}" 430 use_backend be11 431 432 frontend fe13 433 bind "fd@${fe13}" 434 use_backend be13 435 436 frontend fe15 437 bind "fd@${fe15}" 438 use_backend be15 439 440 frontend fe17 441 bind "fd@${fe17}" 442 use_backend be17 443 444 frontend fe19 445 bind "fd@${fe19}" 446 use_backend be19 447 448 frontend fe21 449 bind "fd@${fe21}" 450 use_backend be21 451 452 frontend fe23 453 bind "fd@${fe23}" 454 use_backend be23 455 456 frontend fe25 457 bind "fd@${fe25}" 458 use_backend be25 459 460 frontend fe27 461 bind "fd@${fe27}" 462 use_backend be27 463 464 frontend fe29 465 bind "fd@${fe29}" 466 use_backend be29 467 468 frontend fe31 469 bind "fd@${fe31}" 470 use_backend be31 471 472 frontend fe33 473 bind "fd@${fe33}" 474 use_backend be33 475 476 frontend fe35 477 bind "fd@${fe35}" 478 use_backend be35 479 480 frontend fe37 481 bind "fd@${fe37}" 482 use_backend be37 483 484 frontend fe39 485 bind "fd@${fe39}" 486 use_backend be39 487} -start 488 489# This is a sort of synchronization: after having waited for all the syslog 490# servers we are sure that all the health-checks have succeeded. 491syslog S1 -wait 492syslog S3 -wait 493syslog S5 -wait 494syslog S7 -wait 495syslog S9 -wait 496syslog S11 -wait 497syslog S13 -wait 498syslog S15 -wait 499syslog S17 -wait 500syslog S19 -wait 501syslog S21 -wait 502syslog S23 -wait 503syslog S25 -wait 504syslog S27 -wait 505syslog S29 -wait 506syslog S31 -wait 507syslog S33 -wait 508syslog S35 -wait 509syslog S37 -wait 510syslog S39 -wait 511 512client c1 -connect ${h1_fe1_sock} { 513 txreq 514 rxresp 515 expect resp.status == 200 516} -start 517 518client c3 -connect ${h1_fe3_sock} { 519 txreq 520 rxresp 521 expect resp.status == 200 522} -start 523 524client c5 -connect ${h1_fe5_sock} { 525 txreq 526 rxresp 527 expect resp.status == 200 528} -start 529 530client c7 -connect ${h1_fe7_sock} { 531 txreq 532 rxresp 533 expect resp.status == 200 534} -start 535 536client c9 -connect ${h1_fe9_sock} { 537 txreq 538 rxresp 539 expect resp.status == 200 540} -start 541 542client c11 -connect ${h1_fe11_sock} { 543 txreq 544 rxresp 545 expect resp.status == 200 546} -start 547 548client c13 -connect ${h1_fe13_sock} { 549 txreq 550 rxresp 551 expect resp.status == 200 552} -start 553 554client c15 -connect ${h1_fe15_sock} { 555 txreq 556 rxresp 557 expect resp.status == 200 558} -start 559 560client c17 -connect ${h1_fe17_sock} { 561 txreq 562 rxresp 563 expect resp.status == 200 564} -start 565 566client c19 -connect ${h1_fe19_sock} { 567 txreq 568 rxresp 569 expect resp.status == 200 570} -start 571 572client c21 -connect ${h1_fe21_sock} { 573 txreq 574 rxresp 575 expect resp.status == 200 576} -start 577 578client c23 -connect ${h1_fe23_sock} { 579 txreq 580 rxresp 581 expect resp.status == 200 582} -start 583 584client c25 -connect ${h1_fe25_sock} { 585 txreq 586 rxresp 587 expect resp.status == 200 588} -start 589 590client c27 -connect ${h1_fe27_sock} { 591 txreq 592 rxresp 593 expect resp.status == 200 594} -start 595 596client c29 -connect ${h1_fe29_sock} { 597 txreq 598 rxresp 599 expect resp.status == 200 600} -start 601 602client c31 -connect ${h1_fe31_sock} { 603 txreq 604 rxresp 605 expect resp.status == 200 606} -start 607 608client c33 -connect ${h1_fe33_sock} { 609 txreq 610 rxresp 611 expect resp.status == 200 612} -start 613 614client c35 -connect ${h1_fe35_sock} { 615 txreq 616 rxresp 617 expect resp.status == 200 618} -start 619 620client c37 -connect ${h1_fe37_sock} { 621 txreq 622 rxresp 623 expect resp.status == 200 624} -start 625 626client c39 -connect ${h1_fe39_sock} { 627 txreq 628 rxresp 629 expect resp.status == 200 630} -start 631 632client c1 -wait 633client c3 -wait 634client c5 -wait 635client c7 -wait 636client c9 -wait 637client c11 -wait 638client c13 -wait 639client c15 -wait 640client c17 -wait 641client c19 -wait 642client c21 -wait 643client c23 -wait 644client c25 -wait 645client c27 -wait 646client c29 -wait 647client c31 -wait 648client c33 -wait 649client c35 -wait 650client c37 -wait 651client c39 -wait 652 653server s1 -wait 654server s3 -wait 655server s5 -wait 656server s7 -wait 657server s9 -wait 658server s11 -wait 659server s13 -wait 660server s15 -wait 661server s17 -wait 662server s19 -wait 663server s21 -wait 664server s23 -wait 665server s25 -wait 666server s27 -wait 667server s29 -wait 668server s31 -wait 669server s33 -wait 670server s35 -wait 671server s37 -wait 672server s39 -wait 673 674 675haproxy h1 -cli { 676 send "show servers state" 677 expect ~ "# be_id be_name srv_id srv_name srv_addr srv_op_state srv_admin_state srv_uweight srv_iweight srv_time_since_last_change srv_check_status srv_check_result srv_check_health srv_check_state srv_agent_state bk_f_forced_id srv_f_forced_id srv_fqdn srv_port srvrecord\n2 be1 1 srv1 ${s1_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s1_port} -\n2 be1 2 srv0 ${s0_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s0_port} -\n3 be3 1 srv3 ${s3_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s3_port} -\n3 be3 2 srv2 ${s2_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s2_port} -\n4 be5 1 srv5 ${s5_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s5_port} -\n4 be5 2 srv4 ${s4_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s4_port} -\n5 be7 1 srv7 ${s7_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s7_port} -\n5 be7 2 srv6 ${s6_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s6_port} -\n6 be9 1 srv9 ${s9_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s9_port} -\n6 be9 2 srv8 ${s8_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s8_port} -\n7 be11 1 srv11 ${s11_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s11_port} -\n7 be11 2 srv10 ${s10_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s10_port} -\n8 be13 1 srv13 ${s13_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s13_port} -\n8 be13 2 srv12 ${s12_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s12_port} -\n9 be15 1 srv15 ${s15_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s15_port} -\n9 be15 2 srv14 ${s14_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s14_port} -\n10 be17 1 srv17 ${s17_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s17_port} -\n10 be17 2 srv16 ${s16_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s16_port} -\n11 be19 1 srv19 ${s19_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s19_port} -\n11 be19 2 srv18 ${s18_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s18_port} -\n12 be21 1 srv21 ${s21_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s21_port} -\n12 be21 2 srv20 ${s20_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s20_port} -\n13 be23 1 srv23 ${s23_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s23_port} -\n13 be23 2 srv22 ${s22_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s22_port} -\n14 be25 1 srv25 ${s25_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s25_port} -\n14 be25 2 srv24 ${s24_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s24_port} -\n15 be27 1 srv27 ${s27_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s27_port} -\n15 be27 2 srv26 ${s26_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s26_port} -\n16 be29 1 srv29 ${s29_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s29_port} -\n16 be29 2 srv28 ${s28_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s28_port} -\n17 be31 1 srv31 ${s31_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s31_port} -\n17 be31 2 srv30 ${s30_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s30_port} -\n18 be33 1 srv33 ${s33_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s33_port} -\n18 be33 2 srv32 ${s32_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s32_port} -\n19 be35 1 srv35 ${s35_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s35_port} -\n19 be35 2 srv34 ${s34_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s34_port} -\n20 be37 1 srv37 ${s37_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s37_port} -\n20 be37 2 srv36 ${s36_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s36_port} -\n21 be39 1 srv39 ${s39_addr} 2 0 1 1 [[:digit:]]+ 6 ([[:digit:]]+ ){3}0 0 0 - ${s39_port} -\n21 be39 2 srv38 ${s38_addr} 2 0 1 1 [[:digit:]]+ 1 0 1 0 0 0 0 - ${s38_port} -\n" 678} 679 680