1
我正在研究一個bash腳本,它將檢查+1000域是否已過期。我使用一個for循環遍歷/var/cpanel/users/*
中的所有用戶。它適用於10個第一用戶(循環),然後它只是掛起。爲什麼我的bash腳本掛起?
奇怪的是我可以用Ctrl+Z
停止腳本,然後用fg
再次啓動腳本,它對於大約+10個用戶而言仍然正常工作,但之後它會再次掛起。
這是我scirpt:
# File that will have the result.
file="domain-result.txt"
printf "USER\t\tDOMAIN\t\t\tREPORT\n" > "$file"
printf "\n" >> "$file"
# For loop to iterate over all users in cpanel.
for z in /var/cpanel/users/*;
do
# Only files can be used.
if [[ -f "$z" ]]
then
# Get the domain name.
awk -F'=' '/DNS=/ {print $2}' "$z" | while read row;
do
# If there's no domain name than skip to next account.
if [[ -z "$row" ]]; then continue; fi
printf "Checking domain: %s...done\n" "$row"
# Execute whois command on the domain.
whois=$(/usr/bin/whois $row | grep 'not found')
# Get the username.
user=$(echo "$z" | awk -F'/' '{print $5}')
if [[ -n "$whois" ]]
then
printf "%s\t\t%s\t\t%s - EXPIRED\n" "$user" "$row" "$whois" >> "$file"
break
else
continue
fi
done
else
continue
fi
done
printf "\n"
printf "Total: $(sed '1,2d' "$file" | wc -l) expired domains.\n"
這是在/var/cpanel/users/*
模樣文件如何樣:
DNS=stackoverflow.com
您應該添加'#!/ bin/bash -x'並嘗試獲取關於它究竟卡在哪裏的更多信息。 –
@BarisDemiray我已經完成了'set -x',但沒有任何幫助。一切似乎都很好。 – krt
如果您因爲WHOIS濫用而遭到鎮壓,我不會感到驚訝。 –