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
timeout
POSIX 표준에 정의되어 있지 않아 유비쿼터스가 보장되지는 않지만 일반적인 것으로 보입니다.
답변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