quinta-feira, 21 de janeiro de 2016

Dicas de SED boas para arrumar um arquivo de texto

Eliminar os espaços e tabulações
Em início de linha

sed 's/^[ \t]*//

sed 's/^\s*//'    # Utilização do parâmetro "\s"

Em fim de linha

sed 's/[ \t]*$//'

No início e fim de linha

sed 's/^[ \t]*//;s/[ \t]*$//'


Eliminar as linhas vazias
Todas as linhas vazias


sed '/^$/d'

sed '/./!d'

Unicamente aquelas de cabeçalho


sed '/./,$!d'

sed -nr '/./,$s/(.*)/\1/p'  # obrigado Adrien

Unicamente aquelas de fim

sed -e :a -e '/^\n*$/ {$d;N;ba' -e '}'

quarta-feira, 7 de outubro de 2015

DEIXAR O LOG FULL FUNCIONANDO NO ELASTIX 2.5

Editar o arquivo /etc/asterisk/logger.conf

Antes (não funcionando):

[logfiles]
full => notice,warning,error,debug,verbose

Após (funcionando):

Inserir estas linhas no fim do arquivo

[general]
dateformat=%F %T
appendhostname=no
queue_log=yes
rotatestrategy=rotate

[logfiles]
full => debug,error,notice,verbose,warning
console => debug,error,notice,verbose,warning

Para o console funcionar após as alterações

inserir a linha VERBOSITY=3 no arquivo /etc/sysconfig/asterisk

echo 'VERBOSITY=3' >> /etc/sysconfig/asterisk

Após reiniciar com o comando /etc/init.d/asterisk restart


Para o amportal funcionar mudar a linha abaixo do arquivo /var/lib/asterisk/bin/freepbx_engine
/usr/sbin/safe_asterisk -U $AMPASTERISKUSER -G $AMPASTERISKGROUP 2>&1 >/dev/null
para
/usr/sbin/safe_asterisk -U $AMPASTERISKUSER -G $AMPASTERISKGROUP -v -v -v 2>&1 >/dev/null

sexta-feira, 19 de setembro de 2014

Acesso Remoto em banco de dados Mysql

Por padrão o mysql vem habilitado para aceitar conexões locais, para conseguir conectar remotamente é necessario fazer algumas modificações.
Abrir o arquivo:
/etc/my.cnf e comentar a linha  " bind-address = 127.0.0.1 "

PARA ACESSO DE QUALQUER IP

grant all privileges on *.* to root@'%' identified by 'aqui a senha' with grant option;

PARA ACESSO DE HOST ESPECIFICO

GRANT ALL PRIVILEGES ON *.* TO user_name@host IDENTIFIED BY 'pass_word';

E POR FIM

flush privileges;

Agenda para os telefones IP Grandstream

Primeiramente crie uma página PHP com o seguinte conteúdo:

<?php

//PHP PARA GERAR LISTA CONTATOS EM XML PARA APARELHOS DA GRANDSTREAM
//CRIADO POR JUNIOR VIEIRA
//EMAIL: JUNIORDJV@GMAIL.COM

 //Criando a conexão com a base
    $db = mysql_connect("host","user","senha");
    if (!$db) {
        die('Could not connect to db: ' . mysql_error());
    }

    //Selecionando a base de dados
    mysql_select_db("asterisk",$db);

    //Select para buscar os dados para agenda
    $result = mysql_query("SELECT * FROM devices ORDER BY description ASC", $db);

    //Criando SimpleXMLElement object
    $xml = new SimpleXMLElement('<AddressBook/>');
    $index = 0;
   
while($row = mysql_fetch_assoc($result)) {
$mydata = $xml->addChild('Contact');
        $mydata->addChild('LastName',$row['description']);
$mydata->addChild('FirstName',' ');
$mydata = $mydata->addChild('Phone');
$mydata->addChild('phonenumber',$row['user']);
$mydata->addChild('accountindex',$index);

}
mysql_close($db);


    //Criando o arquivo XML
    $fp = fopen("informe o seu diretório de gravação","wb");

    //Escrevendo o XML
    fwrite($fp,$xml->asXML());

    //Informando que o arquivo foi gravado

    $dataHora = date("d/m/Y h:i:s");
    echo $dataHora ;
    echo " - Arquivo gravado com sucesso em: /tftpboot/gs_phonebook.xml";
   
    //Fechando a conexao com a base de dados
    fclose($fp);

?>

<br><button type="button" onclick="location.href='download.php'">Download XML</button></br>


Agora crieu uma página download.php para download do XML gerado:

<?php
    // abaixo informe o diretorio que foi gravado
    $file = "/tftpboot/gs_phonebook.xml";

    if(!file_exists($file)) die("Arquivo Inexistente.");

    $type = filetype($file);
    // Get a date and timestamp
    $today = date("F j, Y, g:i a");
    $time = time();
    // Send file headers
    header('Content-type: text/xml');
    header('Content-Disposition: attachment; filename="gs_phonebook.xml"');
    header("Content-Transfer-Encoding: binary");
    header('Pragma: no-cache');
    header('Expires: 0');
    // Send the file contents.
    set_time_limit(0);
    readfile($file);
?>

Feito isto é só executar o php, que o arquivo será gerado no diretório informado, ou baixe pelo botão.

terça-feira, 24 de setembro de 2013

Lynx descobrindo ip

Para descobrir fácil o ip de seu servidor é só instalar o pacote do lynx.

yum install lynx

E rodar o comando abaixo:

lynx http://showip.com | grep "Your IP address is"

quarta-feira, 18 de setembro de 2013

Auditoria no Zimbra

Como usuário Zimbra execute os comandos:

HABILITAR AUDITORIA
zmprov ma user_a_ser_monitorado@dominio.com.br zimbraInterceptAddress user_monitor@dominio.com.br


DESABILITAR AUDITORIA
zmprov ma "user_monitorado"@
dominio.com.br zimbraInterceptAddress ""

quinta-feira, 6 de junho de 2013

Script para verificar espaço em disco

Segue um script para alertar quando há problemas de espaço em disco no Zimbra, o mesmo também pode ser facilmente adaptado a outros tipos de servidores, coloque ele no cron do linux para executar diariamente e não ter surpresas com falta de espaço.


#!/bin/bash

#http://www.vivaolinux.com.br/perfil/verPerfil.php?login=juniordjv

ESPACO=`df -h | grep sdb1 | awk '{print $5}'  | grep -v Use | sort -nr | awk -F % '{print $1}'`
ESPACO_INODE=`df -hi | grep sdb1 | awk '{print $5}'  | grep -v IUse | sort -nr | awk -F % '{print $1}'`
ALERTA_RISCO="O disco esta prestes ficar sem espaco por favor verificar \n\n `df -h ` \n\n `uname -a`"
ALERTA_CHEIO="O disco esta cheio verifique com urgencia \n\n `df -h ` \n\n `uname -a`"
ALERTA_RISCO_INODE="O disco esta prestes ficar sem espaco favor verificar \n\n `df -hi ` \n\n \sbin\ifconfig \n\n `uname -a`"
ALERTA_CHEIO_INODE="O disco esta cheio verifique com urgencia \n\n `df -hi ` \n\n \sbin\ifconfig \n\n  `uname -a`"
SUBJECT_1="ZIMBRA - POUCO ESPACO EM DISCO"
SUBJECT_2="ZIMBRA - SEM ESPACO EM DISCO"
SUBJECT_1_I="ZIMBRA - POUCOS INODES NO DISCO"
SUBJECT_2_I="ZIMBRA - SEM INODES NO DISCO"
TAMANHO=`df -h`
UNIDADE=`df -h | grep sdb1`

# Verifica espaco em disco
case $ESPACO in
        7[0-9]) #Caso o disco esteja entre 90 a 99 ele manda um email avisando
        echo -e "$SUBJECT_1 \n\n$TAMANHO\n\nUNIDADE A SER VERIFICADA\n$UNIDADE" | mailx -s "$SUBJECT_1" "seu_email_sem aspas";;
        100) #Caso encha tb
        echo -e "$SUBJECT_2 \n\n$TAMANHO\n\nUNIDADE A SER VERIFICADA\n$UNIDADE" | mailx -s "$SUBJECT_2" "seu_email_sem aspas";;
esac

case $ESPACO_INODE in
        9[0-9]) #Caso o disco esteja entre 90 a 99 ele manda um email avisando
        echo -e "$SUBJECT_1_I \n\n$TAMANHO\n\nUNIDADE A SER VERIFICADA\n$UNIDADE" | mailx -s "$SUBJECT_1_I" "seu_email_sem aspas";;
        100) #Caso encha tb
        echo -e "$SUBJECT_2_I \n\n$TAMANHO\n\nUNIDADE A SER VERIFICADA\n$UNIDADE" | mailx -s "$$SUBJECT_2_I" "seu_email_sem aspas";;
esac