-
Notifications
You must be signed in to change notification settings - Fork 0
/
envioNotificacaoPAGINATION.sh
82 lines (61 loc) · 2.64 KB
/
envioNotificacaoPAGINATION.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/bin/bash
# Função para extrair dados da página usando Puppeteer. O puppeteer é uma ferramenta que pode ser utilizada para testes de interface, testes de integração, automação de tarefas, extração de dados e muitas outras atividades que requerem a interação com um navegador.
get_page_data() {
node - <<EOF
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({ args: ['--no-sandbox'] });
const page = await browser.newPage();
const url = 'http://10.0.28.209:8081/alerting';
await page.goto(url, { waitUntil: 'domcontentloaded' });
await page.waitForTimeout(5000);
let pageData = [];
let nextPageButton;
do {
const dataElements = await page.evaluate(() => {
const elements = document.querySelectorAll('.message.mb-5.b');
const dateElements = document.querySelectorAll('.g-sm-3.grey.sm.hide-xs.time-line.tr');
return Array.from(elements).map((element, index) => ({
text: element.textContent.trim(),
date: dateElements[index]?.textContent.trim(), // Use optional chaining to avoid errors if dateElements[index] is undefined
}));
});
pageData = pageData.concat(dataElements);
nextPageButton = await page.$('.pagination .el-pagination__next > .btn');
if (nextPageButton) {
await nextPageButton.click();
await page.waitForTimeout(5000); // Aguarde o carregamento da próxima página
}
} while (nextPageButton);
console.log(JSON.stringify(pageData, null, 2));
await browser.close();
})();
EOF
}
# Endereço de e-mail remetente (sua conta de e-mail corporativo)
from="[email protected]"
# Endereço de e-mail destinatário (pode ser o seu e-mail do Gmail)
to="[email protected]"
# Assunto do e-mail
subject="Alarmes extraídos do Skywalking- Script envioNotificacao"
# Comandos para capturar o conteúdo da página em uma variável
alarm_info=$(get_page_data)
# Componha o e-mail
email=$(cat <<EOF
From: $from
To: $to
Subject: $subject
$alarm_info
EOF
)
# Defina o nome do arquivo de log de erro
log_file="erro_envio_email.log"
# Envie o e-mail usando sendmail e o Gmail SMTP, redirecionando erros para o arquivo de log
echo "$email" | sendmail -t 2> "$log_file"
# Verifique se ocorreu algum erro e, se sim, registre-o no arquivo de log
if [ $? -ne 0 ]; then
echo "Erro ao enviar e-mail. Veja o arquivo de log '$log_file' para detalhes."
else
echo "Email enviado com sucesso em $(date)" >> "$log_file"
echo "Enviado com sucesso"
fi