Tenho um arquivo de script ssh .sh bash que estou executando em um cron para verificar o status do site. O script bash (quando executado) se refere a um arquivo txt local para uma lista de sites para verificar se eles estão inativos ou ativos. Às vezes, um site fica inativo por um tempo (manutenção etc.) e não quero receber notificações desse tempo de inatividade específico repetidamente. Então, estou tentando descobrir como comentar o item de linha deste site no arquivo txt. Toda vez que adiciono //, ou #, ou ## à esquerda do endereço deste site no arquivo txt, ele nunca o ignora. Ele ainda detecta o item de linha e envia a notificação para meu telefone e e-mail a cada dez minutos que ele está inativo. Este é apenas um script .sh padrão e um arquivo .txt padrão. Só preciso saber como comentar itens no arquivo txt. (não é um script bash)
Aqui está o arquivo .sh:
#!/bin/bash
# Mailgun API configuration
MAILGUN_API_KEY="redacted"
MAILGUN_DOMAIN="redacted"
TO_EMAIL="redacted"
FROM_EMAIL="redacted"
cd /redacted/redacted/uptime
# File containing website URLs
WEBSITE_FILE="premium-websites.txt"
while IFS= read -r website; do
response=$(curl -Is --max-time 10 "$website" | head -n 1)
response_code=$(echo "$response" | awk '{print $2}')
if [[ "$response_code" != "200" ]]; then
if [[ "$response_code" == "" ]]; then
# Website timed out, send email notification
subject="Website Timeout: $website"
body="The Premium Care website $website timed out. Please investigate. Sent from corp"
elif [[ "$response_code" == "500" ]]; then
# Website has a 500 error, send email notification
subject="Website 500 Error: $website"
body="The Premium Care $website returns a 500 Internal Server Error. Please investigate. Sent from corp"
else
# Website is down, send email notification
subject="Website Down: $website"
body="The Premium Care website $website is down. Please investigate. Sent from corp"
fi
curl -s --user "api:$MAILGUN_API_KEY" \
https://api.mailgun.net/v3/$MAILGUN_DOMAIN/messages \
-F from="$FROM_EMAIL" \
-F to="$TO_EMAIL" \
-F subject="$subject" \
-F text="$body"
echo "[$(date)] $website issue detected. Email notification sent."
else
echo "[$(date)] $website is up."
fi
done < "$WEBSITE_FILE"
insira o código aqui insira o código aqui
Aqui está o arquivo de texto (apenas um exemplo):
https://websites1.com
https://websites2.com
https://websites3.com
Uma maneira possível é ter uma versão master da sua lista de sites. E dessa versão usando, por exemplo, um comando como:
crie um arquivo específico para a execução atual. Se você não tiver downtime em nenhum host, basta copiar o master para o arquivo de execução atual.
Você também pode alterar seu script para filtrar linhas que começam com
#
:e altere a última linha para ser apenas