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 '}'
TechLinux
Linux e tecnologia
quinta-feira, 21 de janeiro de 2016
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
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;
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);
?>
<?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"
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 ""
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
Assinar:
Postagens (Atom)