Installation d'un délai d'attente personnalisé pour nmblookup

Dans le cadre du scénario du lot, j'ai la commande suivante:

hostname=$(nmblookup -A $ip_address | awk '$2 == "<20>" {print $1}')

Ce qui fonctionne parfaitement en termes de fonctionnalité, même pour les hôtes non résolus.

Le problème est que lorsque l'adresse IP n'est pas disponible ou que la machine distante ne répond pas à la demande. SMB, L'exécution de l'équipe prend environ dix secondes. Par conséquent, la question est simple: existe-t-il un moyen de réduire le temps passé dans de tels cas? Ou, en d'autres termes, y a-t-il un moyen d'installer votre propre temps pour

nmblookup

équipe?

REMARQUE:

Je suis intéressé par des solutions qui

ne pas

utilisation

SIGALRM

ou des mécanismes similaires; S'ils existent. DANS

nmblookup

version

3.6.3

de Ubuntu 12.04 LTS.
Invité:

Dominique

Confirmation de:

Je ne pense pas que l'opérateur if fonctionnera parce que nmap Retourner zéro s'il est effectué sans erreurs, que le port soit ouvert sur n'importe quel hôte. Essayez d'effectuer l'analyse de sortie de la syntaxe suivante. nmap, En substituant toute gamme d'adresses IP dont vous avez besoin:

for ip_address in $(nmap -p 137 192.168.0.0/24 -oG - | grep netbios |grep -v closed | awk '{print $2}')
do
hostname=$(nmblookup -A $ip_address | awk '$2 == "<20>" {print $1}')
echo "$ip_address: $hostname"
done

Hannah

Confirmation de:

Je viens d'utiliser

timeout 1 nmblookup -A $ip_address

Il tue nmblookup Quand commence plus 1 secondes.

Agathe

Confirmation de:

Contourne

nmblookup(1)

limitation:

if (nmap -p "${port} -sU -P0 "${ip_address}" &> /dev/null); then
hostname=$(nmblookup -A $ip_address | awk '$2 == "<20>" {print $1}')
else
printf "Host unreachable.\n"
fi

Je suppose que vous devez vérifier

netbios-ns 137/udp

, Changer le test pour utiliser les paramètres appropriés et

"${port}"

.

Pour répondre aux questions, connectez-vous ou registre