2초 후에 nc 명령을 종료하는 방법은 무엇입니까? [복사]

2초 후에 nc 명령을 종료하는 방법은 무엇입니까? [복사]

IP를 반복하고 특정 서비스(예 nc -sip# mailin-01.mx.aol.com 25: .

깃발이 있었는데 -w ..., 제가 상상했던 것과는 달랐습니다. 즉, 나는 이 프로그램이 최대 3초 동안만 실행되기를 원하며 우리가 연결하는 곳은 항상 실행 중입니다(스크립트가 걱정하지 않아도 되는 주요 네트워크 문제를 제외하고 --- 특정 작업이 아니며, 이전에 언급됩니다) 스크립트가 실행되었습니다).

연결하고 오류 메시지가 나타나는지 확인하려면 필요합니다. 이는 사용자의 웹 페이지에 IP를 할당하기 전에 필요합니다(이는 CPanel 항목을 대체합니다. 우리는 자체 IP를 원합니다).

답변1

가장 쉬운 방법은 timeout명령을 사용하는 것입니다. 이 timeout명령을 사용하면 지정된 명령을 실행 timeout하고 해당 명령이 특정 시간 초과 내에 종료되지 않으면 종료할 수 있습니다.

예를 들어

# timeout 3 sleep 1; echo exit=$? 
exit=0

# timeout 3 sleep 5; echo exit=$?
exit=124

# timeout 3 nc google.com 80; echo exit=$?
nc: using stream socket
exit=124

timeoutPOSIX 표준에 정의되어 있지 않아 유비쿼터스가 보장되지는 않지만 일반적인 것으로 보입니다.

답변2

http://www.varesano.net/blog/fabio/executing-program-x-seconds-then-killing-it-simple-bash-script

이게 효과가 있어

#!/bin/bash

cmd=$1
seconds=$2

echo "Executing: ${cmd} for $seconds seconds"
$cmd&

cmdpid=$!
sleep $seconds

if [ -d /proc/$cmdpid ]
then
echo "terminating program PID:$cmdpid"
kill $cmdpid
fi

관련 정보