Archive for the ‘Open Source’ Category

E quando o replace do Mysql me Abandonar o Perl vai me Salvar ;)

Tuesday, January 31st, 2012

Para se salvar com uma alternativa ao comando replace (oriundo do mysql) use:

perl -pi -w -e ‘s/COISA_QUE_QUERO_SUBSTITUIR/COISA_QUE_QUERO_ADD/g;’ arquivo_que_quero_mudar

Pronto!

Como deletar fila de emails por domínio junto ao Cpanel / EXIM mail server

Tuesday, October 11th, 2011

Por vezes encontramos trouxas fazendo spam, lotam a fila e acham que iremos deletar tudo e ferrar com a vida de quem envia emails corretamente.
Vamos acabar com a festa de um domínio spammer que lotou a fila do srv?

Como root faça:

exiqgrep -ir email_do_sadado@dominiodoporco.com.br | xargs exim -Mrm

 

Isso vai limpar a fila do porco!

Use of uninitialized value in string ne at /usr/sbin/ddclient

Thursday, October 6th, 2011

Para sanar essa parada acessem:

http://www.appunix.com.br/howto/linux/use-of-uninitialized-value-in-string-ne-at-usrsbinddclient-line-1973/

 

Como observar quem está acessando o roundcube no cpanel?

Friday, September 30th, 2011

Para identificar quem está acessando seu roundcube use:

egrep "GET (/cpsess[0-9]+)?/3rdparty/roundcube/\?.* HTTP/1.[01]" /usr/local/cpanel/logs/access_log

Para saber quais são os ips que estão acessando o roundcube:

pgrep -l -f webmaild

Para saber qual versão do roundcube:

grep -H '' /usr/local/cpanel/version /var/cpanel/roundcube/version
egrep "GET (/cpsess[0-9]+)?/3rdparty/roundcube/\?.* HTTP/1.[01]" /usr/local/cpanel/logs/access_log

Fullbackup parando no meio do caminho em algumas contas no CPANEL

Saturday, September 24th, 2011

Existe uma coisa estranha, e acontece mais do que imaginamos!

Já viu um fullbackup simplesmente parar no meio do caminho (pkgacct via console, por exemplo)?

Ou um user reclama que o backup está incompleto ou foi restaurar e o site não funfa mais? (um cms, por exemplo, como wordpress)

Isto ocorre em detrimento a limites do mysql (normalmente é esta a causa) no momento de gerar o dump, veja mais abaixo.

Um passo a segu1r é o seguinte, como root devemos executar o seguinte comando:

tail -f /usr/local/cpanel/logs/error_log

Se a saída do log (recomendo fazer isso via screen, por exemplo) for essa:

Script::Pkgacct::__ANON__() called at /scripts/pkgacct line 2154
Script::Pkgacct::run_dot_event(CODE(0x2b3d547e1050)) called at /scripts/pkgacct line 1141
Script::Pkgacct::script(‘Script::Pkgacct’, ‘LOGINDOCLIENTE‘) called at /scripts/pkgacct line 85
[UMA DATA] warn [pkgacct] LOGINDOCLIENTE_NOMEDOBD: mysqldump: Couldn’t execute ‘SHOW TRIGGERS LIKE ‘bl\_NOMEDOBD”: Got error 28 from storage engine (1030)
at /scripts/pkgacct line 1535
Script::Pkgacct::_check_error_file(‘LOGINDOCLIENTE_NOMEDOBD‘, ‘/home/cpmove-LOGINDOCLIENTE/mysql/LOGINDOCLIENTE_NOMEDOBD.sql.err’) called at /scripts/pkgacct line 1504
Script::Pkgacct::mysqldumpdb(HASH(0x2b3d547e1000)) called at /scripts/pkgacct line 1138
Script::Pkgacct::__ANON__() called at /scripts/pkgacct line 2154
Script::Pkgacct::run_dot_event(CODE(0x2b3d547e1050)) called at /scripts/pkgacct line 1141
Script::Pkgacct::script(‘Script::Pkgacct’, ‘LOGINDOCLIENTE‘) called at /scripts/pkgacct line 85

É simples de sanar!

Entre no /etc/my.cnf e comente as linhas que limitam uso de memória de cache (principalmente as de querys) do mysql.
Feito isto:

service mysql restart

Depois mande gerar o backup!

 

Se o problema não for resolvido veja se o erro é de EOF (end of file), se isso rolar, analise o disco, ou load (i/o no geral), pois pode ser falha no disco ou overload.
Abraços galera.

Roundcube causando Overload no Cpanel, como resolver?

Monday, September 19th, 2011

É bem verdade que o vilão da história não é o roundcube e sim o mysql que causam overload. Mysql tem uma regra padrão de cada query esperar a outra terminar, por isso, imagine 500 domínios acessando o roundcube e fazendo a festa?

É possível sanar sim e de maneira tranquila o overload.

O que fazer?

Entre como root no seu servidor whm/cpanel e rode:

/scripts/convert_roundcube_mysql2sqlite

 

Se por ventura rolar algum erro faça o procedimento forçando-o (update do roundcube):

 

/usr/local/cpanel/bin/update-roundcube-sqlite –force

 

Outra coisa MUITO importante:

FAÇA UM DUMP DA BASE DE DADOS DO ROUNDCUBE, isso vai garantir que você tenha qualquer BD para uma possível volta ao mysql (acho BEM difícil, lol)

Para saber se o SQLITE é padrão no mysql use:

grep roundcube_db /var/cpanel/cpanel.config

Abraços e espero ter ajudado.

 

 

ERROR 1030 (HY000) at line: Got error -1 from storage engine

Friday, April 29th, 2011

Se receber esta mensagem de erro no seu mysql no momento de tentar restaurar um banco de dados por meio de arquivos (.sql da vida), no problem.
Verifique se no arquivo my.cnf (normalmente fica no /etc) existe uma linha que informa o modo recovery do innodb. Comente-o, reinicie o mysql e o problema estará sanado.

How to install android 2.3 or 3.0 on Milestone2 (droid2) como instalar o android 2.3 ou 3.0 no milestone 2

Wednesday, April 27th, 2011

Gente, se alguém souber por favor comente!
Estou muito triste com a lentidão da Morotola neste quesito.
Abraços.

Como fazer o exim processar emails mesmo com load alto no whm

Wednesday, April 13th, 2011

As vezes o exim pausa o seu envio afim de poupar recursos da máquina, que por default adentra neste estado a partir do load 3.
O único problema dessa brincadeira é que se o load estiver em 4 ele não envia nada com o padrão de velocidade na queue dele.
Como resolver isso?

Entre no conf do exim e procure pela linha:

deliver_queue_load_max = 3

3 é padrão.
Mude para o valor que achar melhor, recomendo algo até 8.
Abraços.

Nginxcp dando erro no momento da instalação

Wednesday, April 13th, 2011

Generating vhosts…
Traceback (most recent call last):
File “/scripts/createvhosts.py”, line 143, in ?
parsedDOC = minidom.parseString(DOC)
File “/usr/local/lib/python2.4/xml/dom/minidom.py”, line 1925, in parseString
return expatbuilder.parseString(string)
File “/usr/local/lib/python2.4/xml/dom/expatbuilder.py”, line 940, in parseString
return builder.parseString(string)
File “/usr/local/lib/python2.4/xml/dom/expatbuilder.py”, line 223, in parseString
parser.Parse(string, True)
xml.parsers.expat.ExpatError: not well-formed (invalid token): line 542, column 23
deploying booster rockets

Se sua mensagem de erro parece com essa, ou linha 152, ou mesmo em plataforma 64 bits, posso lhe dar uma notícia ruim?
NGINXCP só roda em CENTOS!

Se estiver usando redhat será só mais um sonho :’(

Como limpar todo o cache de updates do Cpanel (stable, release, current ou edge) sem problemas

Wednesday, April 13th, 2011

É muito comum na plataforma CPANEL/WHM manter um padrão de arquivos guardados em uma pasta para que, ao tentar rodar uma update você perceba algo veloz no tocante a baixar arquivos, na verdade a maior parte dos arquivos já está em cache :( .

Como resolver este problema?

rm -Rfv /home/.cpcpan /home/.cpan

Se por exemplo eu quiser reparar módulos perl e atualizar o cpanel já poderei perceber a mudança extremamente importante nos novos pacotes baixados em tempo real, faça um teste:

/scripts/checkperlmodules –force –full
/scripts/upcp –force

Os comandos acima foram testados e já estão em uso.
Não causam qualquer instabilidade a máquina ;) .
Abraços.

Como forçar fila de entrega do exim (tricks) comandos úteis do exim

Tuesday, April 12th, 2011

Abaixo descrevo uma pequena lista de comandos bem úteis do cpanel:

exim -bp —-> Este comando recebe os IDs das mensagens relevantes que você precisa enviar (na verdade as que estão na fila de emails),
exim -M IDdoEmaildaFiladeEMAILS —-> Com o id somado a este comando você envia um email em específico em caráter imediato ;) .
exim -qf —-> envia a fila de emails toda,
exim -qff —-> esse comando ordena que emails congelados tenham uma ordem de envio imediato,
exim -Mvl IDdoEmaildaFiladeEMAILS —-> Vê o log da mensagem especificada pelo seu respectivo ID,
exim -Mvb IDdoEmaildaFiladeEMAILS —-> Mostra o corpo da mensagem referenciada por seu ID,
exim -Mvh IDdoEmaildaFiladeEMAILS —-> Mostra o cabeçalho da mensagem ordenada por seu ID,
exim -Mrm IDdoEmaildaFiladeEMAILS —> Remove a mensagem especificada por seu ID,
exim -Mg —> prepara mensagens para o envio usando seu ID (mensagens que falharam).

exim -v -Rff nomedodomínio.com.br —-> Esse comando faz com que o exim processe todas as mensagens de um domínio específico, neste caso nomedodomínio.com.br.

Css noob tricks ;)

Tuesday, March 29th, 2011

Uma pequena dica para quem quer evitar stress com padrões de navegadores web (principalmente internet explorer):


html, body, h1, h2, h3, h4, h5, h6, p, ol, ul, li, pre, code, address, variable, form, fieldset, blockquote {
padding: 0;
margin: 0;
font-size: 100%;
font-weight: normal;
}
table { border-collapse: collapse; border-spacing: 0; }
td, th, caption { font-weight: normal; text-align: left; }
img, fieldset { border: 0; }
ol { padding-left: 1.4em; list-style: decimal; }
ul { padding-left: 1.4em; list-style:square; }
q:before, q:after { content:''; }

Isso vai ajudar a ZERAR os padrões e deixar o CSS limpo para que você possa fazer ajustes.

DOMAIN CONFLICT: owned by – the copy failed! Account Restore Failed… Restore failed.

Wednesday, February 16th, 2011

Para resolver este problema em seu Cpanel/WHM não é tão difícil assim.
Um dos fatores principais deste erro sem dúvidas é alguma zona de DNS que o domínio que você tentou restaurar o backup ainda existe.
Para descobrir isso procure na área de DNS (DNS Functions) a opção Delete a DNS zone.
Coloque o nome do domínio que você queria restaurar os backups.
Em seguida delete a zona de DNS confirmando.
O problema deverá estar sanado.

Como extrair arquivos RAR (ou do WINRAR) no Ubuntu 10.04 (Lucid Lynx)?

Tuesday, June 29th, 2010

Se você, toda vez que tenta abrir (extrair) um arquivo rar recebe uma mensagem de erro informando que não consegue abrir o pacote, não se preocupe, é coisa simples de se resolver.

Os passos para o erro seguem-se na imagem abaixo:

Para resolver clique em Aplicativos -> Acessórios -> Terminal

No console digite:

sudo apt-get install rar

A saída deverá ser semelhante a isto (em uma plataforma x86):

Lendo listas de pacotes… Pronto
Construindo árvore de dependências
Lendo informação de estado… Pronto
Pacotes sugeridos:
unrar
Os NOVOS pacotes a seguir serão instalados:
rar
0 pacotes atualizados, 1 pacotes novos instalados, 0 a serem removidos e 0 não atualizados.
É preciso baixar 556kB de arquivos.
Depois desta operação, 1192kB adicionais de espaço em disco serão usados.
Obter:1 http://br.archive.ubuntu.com/ubuntu/ lucid/multiverse rar 1:3.9.b2-1 [556kB]
Baixados 556kB em 5s (95,7kB/s)
Selecionando pacote previamente não selecionado rar.
(Lendo banco de dados … 183480 arquivos e diretórios atualmente instalados).
Desempacotando rar (de …/rar_1%3a3.9.b2-1_i386.deb) …
Processando gatilhos para man-db …
Configurando rar (1:3.9.b2-1) …

Pronto, agora basta tentar extrair novamente que não mais ocorrerá o erro.

Abraços.

Ispconfig 2: how to create a park domain – como deixar um domínio acessar o conteúdo do outro como park no ispconfig

Monday, June 7th, 2010

Uma das coisas mais interessantes no IspConfig é sua capacidade de permitir customizações em tudo que você possa imaginar. Aproveitando esta “boquinha” vamos fazer algo diferente.
Parkear domínios no Parallels Plesk e no Whm/CPanel é coisa fácil, pois tudo é automatizado, mas isto não quer dizer que o bom e velho vim (ou qualquer OUTRO EDITOR) não entre em ação.

Para isto, precisamos logar-nos como root no servidor aonde iremos parkear domínios, e devemos (antes de mais nada) fazer backup do arquivo de configuração do apache, sendo assim use o comando:

cp -rp /etc/httpd/conf/httpd.conf /root/httpd.conf.OLD


Temos então um arquivo garantido para que, em qualquer eventualidade sirva para consulta ou possivelmente correção do arquivo mais recente.

Entremos no arquivo de configuração:

vim /etc/httpd/conf/httpd.conf

Vá para o final do arquivo e localize exatamente este trecho:


Options ExecCGI -Indexes
AllowOverride None
AllowOverride Indexes AuthConfig Limit FileInfo
Order allow,deny
Allow from all

Deny from all

Feito isto, o que devemos fazer é simples.
Sabendo-se que o ISPConfig lê um outro arquivo com os vhosts dos usuários web, devemos antecipar nossa configuração de maneira que a linha do ispconfig fique abaixo do nosso vhost.

Acima da linha com a informação:

Include /etc/httpd/conf/vhosts/Vhosts_ispconfig.conf

Devemos fazer algo assim:

ServerName www.nomedodominioparkeado.com:80
ServerAdmin webmaster@dominiodestino.com.br
DocumentRoot /var/www/web100/web
ServerAlias dominiodestino.com.br
DirectoryIndex index.html index.htm index.php index.php5 index.php4 index.php3 index.shtml index.cgi index.pl index.jsp Default.htm default.htm
Alias /cgi-bin/ /var/www/web100/cgi-bin/
AddHandler cgi-script .cgi
AddHandler cgi-script .pl
ErrorLog /var/www/web100/log/error.log
AddType application/x-httpd-php .php .php3 .php4 .php5
php_admin_flag safe_mode On
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
Alias /stats “/var/www/web100/web/webalizer”
Alias /error/ “/var/www/web100/web/error/”
ErrorDocument 400 /error/invalidSyntax.html
ErrorDocument 401 /error/authorizationRequired.html
ErrorDocument 403 /error/forbidden.html
ErrorDocument 404 /error/fileNotFound.html
ErrorDocument 405 /error/methodNotAllowed.html
ErrorDocument 500 /error/internalServerError.html
ErrorDocument 503 /error/overloaded.html
AliasMatch ^/~([^/]+)(/(.*))? /var/www/web100/user/$1/web/$3
AliasMatch ^/users/([^/]+)(/(.*))? /var/www/web100/user/$1/web/$3

RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* – [F]

Perceba que no começo falei XXX.XXX.XXX.XXX, isto refere-se ao ip do seu dedicado (shared ip dos domínios :P )

Por este vhost pegue a coisa em cheio.

A charada está nas linhas:

ServerName www.nomedodominioparkeado.com:80
ServerAdmin webmaster@dominiodestino.com.br
DocumentRoot /var/www/web100/web
ServerAlias dominiodestino.com.br

1 – indica o parkeamento
2 – email do main domain
3 – arquivos web de onde o parkeamento vai ler assim que o internauta acessar a página www.nomedodominioparkeado.com
4 – indica o destino do parkeamento, ou seja, ao acessar www.nomedodominioparkeado.com a pessoa na realidade acessa dominiodestino.com.br, porém tendo no cabeçalho o nome www.nomedodominioparkeado.com (url de entrada no navegador)


OBS: CASO O ARTIGO NÃO EXIBA AS TAGS DO APACHE, POR FAVOR VERIFIQUEM JUNTO AO ARQUIVO /ETC/HTTPD/CONF/HTTPD.CONF.

Abraços e espero ter contribuído com um dia feliz para nós… lol.
bye!

RoundCube Webmail fica tentando enviar ao clicar no envio mas não faz nada

Monday, June 7th, 2010

Se você está tentando enviar emails pelo RoundCube e sabe que o mesmo fica somente apresentando a mensagem “Enviando mensagem…” e não faz nada, tente as soluções abaixo:

1 – Como root use o comando:

/scripts/autorepair net_smtp_fix


(http://www.nerdblog.info/2009/11/04/webmail-no-cpanel-whm-nao-envia-mais-mensagens/)

Caso não resolva ainda podemos aplicar uma solução mais leve:

2 – Verifique se o CSF está instalado em seu servidor, cas0 sim, acesse o csf em seu WHM -> Plugins -> ConfigServer Security&Firewall -> clique em Firewall Configuration e procure por SMTP_ALLOWLOCAL, caso esteja como “0″ coloque “1″, save as configurações e reinicie seu CSF/LFD.

Caso não resolve (muito difícil de não sanar), vamos mergulhar mais fundo no problema, force uma atualização do RoundCube com o comando:

3 – logado como root:

/usr/local/cpanel/bin/update-roundcube –force

Caso ainda assim não alcance o resultado esperado, apele para update geral:

4 – Procure pelo arquivo -> /usr/local/cpanel/base/3rdparty/roundcube/config/main.inc.php, abra-o e edite procure pela linha:

$rcmail_config['smtp_user'] = ‘%u’;

e substitua a mesma por:

$rcmail_config['smtp_user'] = ‘ ‘;

Salve e saia, em seguida tente ver se o roudcube opera como desejado.

5 – Como root execute:

/scripts/upcp –force

Caso resolva, dê um whois neste domínio e envie uma caneca do Ubuntu, Uma camisa do Ubuntu ou uma caixa de bis!

Abraços.

RoundCube não está permitindo excluir mensagens. Pastas Trash, Send e Junk (lixeira, enviados e rascunho) não aparecem

Friday, May 21st, 2010

Se você não consegue ver as pastas do RoundCube “seus problemas SE ACABARAM-SE”.
O bendito, em sua versão stable (quase 100% stable) está com uma linda opção em off (FALSE).

Na pasta …roundcube/config/main.inc.php (se for no ispconfig: /home/admispconfig/ispconfig/web/roundcubemail/config/main.inc.php)
Apresentará este array aqui:

// automatically create the above listed default folders on login
$rcmail_config['create_default_folders'] = FALSE;

Salve seu dia assim:

$rcmail_config['create_default_folders'] = TRUE;

Pronto :D

Roundcube fixed!

create user output file. Command output: procmail: Error while writing to /var/mail…

Friday, May 21st, 2010

create user output file. Command output: procmail: Error while writing to /var/mail…

Se esta é a mensagem de erro que vem no outlook que de quem está enviando um email para um destinatário que usa postfix seus problemas “SE ACABARAM-SE”.

Entre no console e como root e digite:

postconf -e 'mailbox_size_limit = 0'

Provavelmente é a quota ferrada e este comando te tira da forca :D .

Sistemas afetados: Debian, Ubuntu (lucid lynx, karmic…), Centos 5.5, Centos 5.4…

Warning: odbc_connect() [function.odbc-connect]: SQL error: [Microsoft][ODBC Microsoft Access Driver] Could not use ‘(unknown)’; file already in use., SQL state S1000 in SQLConnect in

Friday, May 21st, 2010

Antemão estou quase chorando por estar usando access, mas como se diz: “Sábio é o que dança conforme a música manda!”.
Estou desenvolvendo ferramentas para automatizar algumas replicações de dados de uma empresa e estou usando php (tecnologia) + access (isso é um banco?)

Este erro é ocasionado pelo fato de existir um drive fechando a conexão (na realidade aberto e acaba bloqueando novas conexões), por exemplo o Access abrindo a bendita base de dados access (.MDB).

Garanta que nada esteja abrindo o access database.

Uma forma de ver que isto está ocorrendo é observar se na pasta aonde o banco de dados esteja, exemplo nerdblog.mdb contenha também um arquivo nerdblog.ldb.

Ao fechar o driver ele automaticamente removerá o arquivo .LDB.

:D