Automatizando relatórios GLPI usando PHP e Shell Script
Qualquer administrador de GLPI já passou certa dificuldade com relação aos relatórios da ferramenta. Este artigo mostrará uma forma de gerar e enviar relatórios automaticamente para seus clientes, ou simplesmente, para agilizar sua rotina de trabalho.
[ Hits: 10.656 ]
Por: Lucas Roberto Daldegan em 23/05/2017 | Blog: http://lucasroberto.com
#!/bin/bash #Variavel que traz a data correspondente a uma semana atrás (data inicial) com formatação onewa="'"$(date --date "1 week ago" +%Y-%m-%d) #Variável que me diz qual é dia atual (data final) com formatação today="'"$(date +%Y-%m-%d) #Comando para gerar relatório mysql -u user -pPASSWD -e "USE glpi; SELECT id AS ID_do_Chamado,name AS Titulo_do_Chamado,solution AS solucao,date AS Data_de_Abertura_do_Chamado,solvedate AS Data_da_Solucao, sec_to_time(solve_delay_stat) AS tempo_de_resolucao_do_chamado FROM glpi_tickets WHERE entities_id =0 AND DATE BETWEEN $onewa 08:00:00' AND $today 18:00:00' INTO OUTFILE '/tmp/relatoriosemanal.csv';" #Comando para envio de e-mail (a mensagem foi escrita em html puro) sendemail -f noreply@empresa -u "Chamados da ultima semana" -m "Segue anexo contendo os dados dos chamados da última semana.<br />Caso necessário, entre em contato conosco atravéz do e-mail suporte@empresa.com.br ou por telefone no número 041 3333-3333 -o message-content-type=html -o message-charset="UTF-8" -a /tmp/relatoriosemanal.csv -t destinatario@dominio exit 0 #Fim do script
#!/bin/bash
#Variaveis que serao enviadas ao PHP
#Data inicial
onewa=$(date --date "1 week ago" +%Y-%m-%d)
#Data final
today=$(date +%Y-%m-%d)
#Variavel que define o nome final do csv que sera gerado (pelo PHP) e enviado
arquivocsv=Chamados_$(date --date "1 week ago" +%d%m%y)-$(date +%d%m%y).csv
#Arquivo com as variaveis em PHP
echo -e "<php""\n"'$ent="0";'"\n"'$datai='"'$onewa'"''";""\n"'$dataf='"'$today'"''";""\n"'require("reports.php")'";""\n"'?>' > gr.php
#Execucao do "gerador de relatorio"
php gr.php > $arquivocsv
#Envio do relatorio por email
sendemail -f noreply@empresa -u "Chamados da ultima semana" -m "Segue anexo contendo os dados dos chamados da última semana.<br />Caso necessário, entre em contato conosco atravéz do e-mail suporte@empresa.com.br ou por telefone no número 041 3333-3333 -o message-content-type=html -o message-charset="UTF-8" -a $(find . -name "Chamdos_*.csv") -t destinatario@dominio
<?php
$ent="0";
$datai='2017-04-20';
$dataf='2017-04-27';
require("reports.php");
?>
<?php
$servername = "localhost";
$username = "dbuser";
$password = "dbpassword";
try {
$conn = new PDO("mysql:host=$servername;dbname=glpi", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT id, name, solution, date, solvedate, sec_to_time(solve_delay_stat) as sec FROM glpi_tickets WHERE entities_id =$ent AND date BETWEEN '$datai 08:00:00' AND '$dataf 18:00:00'";
$now = gmdate("D, d M Y H:i:s");
header("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
header("Cache-Control: max-age=0, no-cache, must-revalidate, proxy-revalidate");
header("Last-Modified: {$now} GMT");
// force download
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
// disposition / encoding on response body
header("Content-Disposition: attachment;filename=csv.csv");
header("Content-Transfer-Encoding: binary");
ob_start();
$df = fopen("php://output", 'w');
$array = $conn->query($sql);
fwrite($df, 'Id_do_chamado;Titulo_do_chamado;Solucao;Data_de_abertura_do_chamado;Data_da_solucao;tempo_de_resolucao_do_chamado');
fwrite($df, "\n");
foreach ($array as $row) {
fwrite($df, $row['id'].';');
fwrite($df, $row['name'].';');
$solution = html_entity_decode($row['solution']);
$solution = strip_tags ( $solution );
$solution = str_replace("\r\n",' ', $solution);
fwrite($df, $solution.';');
fwrite($df, $row['date'].';');
fwrite($df, $row['solvedate'].';');
fwrite($df, $row['sec']);
fwrite($df, "\n");
}
fclose($df);
echo ob_get_clean();
} catch(PDOException $e){
echo "Connection failed: " . $e->getMessage();
}
?>
Apache - Compartilhamento de Recursos - VirtualHosts
PROXMOX Overview - Virtualização Leve e Eficiente
Compilando PHP 5 com suporte a Oracle sem mistérios
Sabayon Linux remasterizado para placas de vídeo ATI
Inkscape - Introdução (Parte 3)
Utilizando o Protheus em estações Linux
Instalando o Opera e plugin Flash Player no Debian
Nenhum comentário foi encontrado.
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Faça suas próprias atualizações de pacotes/programas no Void Linux e torne-se um Contribuidor
Como rodar o Folding@home no Linux
Criando um painel de controle (Dashboard) para seu servidor com o Homepage
O Abismo entre o Código e o Chão: Saltos Tecnológicos e a Exclusão Estrutural no Brasil
Pisando no acelerador do Linux Mint: Kernel XanMod, zRAM e Ajustes de Swap
Como compilar kernel no Linux Mint
Lançamento do Brutal DOOM test 6
Consertando o erro no Brave de webgl
Solução para ter de volta as bordas e barra de títulos das janelas em zenity no Debian 13.x
Abrir um arquivo URL pelo Clipper (8)
Seno, Coseno, Tangente em CLIPPER (1)
Inserir uma URL num arquvo pelo Ubuntu (CLIPPER) (0)
VMWare Player não conecta na rede nem consigo intercambiar arquivos (1)









