我正在开发一个bash脚本,如果它们已过期,将检查+1000个域名。我使用for循环迭代/var/cpanel/users/*
中的所有用户。它适用于10个第一个用户(循环)然后它只是挂起。
奇怪的是,我可以使用Ctrl+Z
停止脚本,然后使用fg
再次启动脚本,并且对于大约+10个用户继续正常工作,但之后它会再次挂起。
这是我的头脑:
# 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
答案 0 :(得分:0)
感谢Ignacio Vazquez-Abrams指出WHOIS滥用行为。我通过向long[]
添加sleep 2
来实现它。现在它很棒。