WHOIS BASH Скрипт иногда не загружает данные - PullRequest
0 голосов
/ 17 марта 2020

Мой сценарий whois bash работает для нескольких доменов и не работает для других.

Когда я запускаю команду непосредственно в моем терминале для того же домена, я вижу вывод. Кроме того, иногда скрипт не запускается должным образом и застревает, тогда мне нужно прервать это.

Почему это так и как я могу это исправить?

Допустим, файл domain.txt содержит: gmail.com, zoom.us, facebook.com, bank.com и т. д. c.

Сценарий:

#!/bin/bash
echo "Please enter the full path of txt file"
read path
filename=$path
while read line
do
    echo "Checking domain $line"
    a=$(whois $line | grep -i -e "Creation Date" | head -1)
    b=$(whois $line | grep -i -e "no match" | head -1)
    echo "$a"$line >> /root/outputdomain.csv
done <$filename
echo "file has been processed successfully."

Пример входного текстового файла:

linkedin.com
zoom.us
sbi.co.in
facebook.com
sap.com
hsbc.com

Ожидаемый результат:

Creation Date: 2002-11-02T15:38:11Z linkedin.com
Creation Date: 2002-04-24T15:03:39Z zoom.us

Что у меня сейчас работает:

Creation Date: 2002-11-02T15:38:11Z linkedin.com
Creation Date: 1997-03-29T05:00:00Z facebook.com

Но нет вывода для zoom.us, sbi.co.in.

Если я запускаю приведенную ниже команду, я могу получить необходимые данные:

$ whois zoom.us | grep -E "Creation Date" | head -1
Creation Date: 2002-04-24T15:03:39Z

1 Ответ

0 голосов
/ 17 марта 2020

Я не использую / знаю whois, но исходя из вашего поста, это то, что я придумал.

#!/usr/bin/env bash

shopt -s extglob
echo "Please enter the full path of txt file"
read -r path
filename=$path
while read -r line; do
  printf 'Processing %s\n' "$line"...
  if a=$(whois "$line" | grep --line-buffer -Fi -m1 "creation date"); then
    printf '%s %s\n' "${a##*+([[:blank:]])}" "$line" >> outputdomain.csv
  else
    printf  '%s No domain match\n' "$line" >> outputdomain.csv
  fi
  sleep 5
done < "$filename"
  • -m Может быть, не POSIX, но он находится в GNU и BSD grep.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...