Сценарий Bash выполняется слишком долго. Нет выхода до отмены - PullRequest
1 голос
/ 27 января 2020

У меня есть этот скрипт, который я вызываю с одним аргументом. Аргумент является IP-адресом. Мне интересно время выполнения этого скрипта. Иногда требуется всего несколько секунд, иногда до 30 минут, чтобы увидеть вывод сценария. Я понятия не имею, почему.

Если я вызову скрипт, подожду несколько секунд и прерву скрипт с помощью ctrl + c, я сразу же смогу увидеть вывод скрипта. Если я просто подожду, я увижу тот же вывод, но через 30 минут.

У вас есть идея, почему этот скрипт или мой сервер глючит?

Thx.

#!/bin/bash
#########################################
# blocks IP address permanently via ufw #
#########################################

# check if user is root
if [[ "$EUID" -ne 0 ]]; then
  echo "Run as root. Exit."
  exit
fi

# check argument it given
ip=${1:?No IP address given. Exit.}

# IPv4 regex
regex4='^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+(\/[0-9]{2}){0,1}$'

# IPv6 regex
regex6='^([0-9a-fA-F]{0,4}:){1,7}[0-9a-fA-F]{0,4}(\/[0-9]{1,2}){0,1}$'

isIP=false

if [[ $ip =~ $regex4 ]]; then
  ufw insert 1 deny from $ip
  echo "$ip blocked permanently!"
  isIP=true
elif [[ $ip =~ $regex6 ]]; then
  ufw prepend deny from $ip
  isIP=true
else
  echo "IP address is wrong."
fi

#ufw status verbose

# add blocked ip to file and commit it.
if [ "$isIP" = true ] && [[ $(grep -L "$ip" ips/custom.txt) ]] ; then
  echo $ip >> ips/custom.txt
  git add ips/custom.txt
  git commit -m "added ip to ips/custom.txt"
  git push
fi

1 Ответ

0 голосов
/ 27 января 2020

У меня была такая же проблема в моем скрипте. Я думаю, что проблема в строке echo $ip >> ips/custom.txt попробуйте следующее:

echo $ip >> ips/custom.txt 2>&1 &

Дайте мне знать ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...