Выполнить раскопки по двум спискам

Выполнить раскопки по двум спискам

Мне нужно выполнить dig по доменам и псевдонимам этих доменов, поэтому результат будет следующим:
ЕСЛИ домен (+ не имеет псевдонима) и использует мои серверы имен -> тогда вывести
ЕСЛИ и домен, и псевдоним используют мои серверы имен -> тогда вывести
Все остальное нет (включая случаи, когда домен использует мои серверы имен, а псевдоним — нет). У меня есть домены, хранящиеся в MySQL, и вот скрипт, над которым я работаю:

for domain in `echo "$QUERY1" | mysql -N -s -u $USER -p$PASS $DBNAME -h$HOST | awk '{print $1}'; do
    lookup=$(dig $domain ns +short)
    if [[ "$lookup" =~ 'XXX' ]]; then
        our=1
        break
    else
        our=0
        break
    fi
done

В этом ЗАПРОСЕ я перечисляю все (и домены, и псевдонимы). Конечно, я могу создать другой запрос, чтобы перечислить только псевдонимы или только домены. Казалось бы, мне нужно сгруппировать все псевдонимы домена и выполнить цикл по списку доменного имени + псевдонимов. Если какой-либо из них не использует NS, мне придется задать переменную, которая диктует вывод домена. Дайте мне знать, какие у вас есть идеи, и, пожалуйста, поделитесь решением, если это возможно.

решение1

Рассмотрите следующую альтернативу сценарию, над которым вы работаете:

mysql --silent --skip-column-names \
    --user="$USER" --password="$PASSWORD" \
    --host="$HOST" --database="$DBNAME" \
    --execute="$QUERY1" |
awk '{ printf("%s ns +short\n", $1) }' |
if dig -f - | grep -q "XXX"; then
    our=1
else
    our=0
fi

Я предпочитаю использовать длинные опции в скриптах, поскольку они самодокументируемы.

Запрос $QUERY1можно составить таким образом, что в этом awkнет необходимости:

SELECT CONCAT(column, " ns +short") FROM ...

Я заставил digего запросы считываться из стандартного ввода из канала, awkи он grepпомогает нам находить их XXXв выводе.

Не требуется никаких сложных циклов.

Разумеется, в конечном итоге он не делает то, что вам нужно, а только то, что вы делаете в данный момент, но поскольку я не слишком разбираюсь в DNS-поисках, я оставлю все как есть.

Связанный контент