nav-left cat-right
cat-right

Como iniciar a instalação do CPanel no Servidor ...

Você pode instalar o cPanel em seu servidor dedicado linux, sem maiores complicações. cPanel é um painel de controle para hosting, comercial e bem utilizado. Com ele, administra-se serviços como:

  • Servidor de email exim;
  • Servidor de páginas eletrônicas;
  • Servidor de banco de dados mysql ou postgresql;
  • Servidor de DNS bind;
  • Dentre outros.

O gerenciamento do servidor é através de uma completa e funcional interface web, o que torna a administração dos recursos, muito mais fáceis. Vamos então, ao processo de instalação do CPanel.

(mais…)

Verificando a fila de emails no Exim...

Para verificar o conteúdo da fila de emails no exim, através do SSH, faça:

Exibir o número total de mensagens da fila

exim -bpc

Lista completa de mensagens

exim -bp

Para verificar o conteúdo de um email, use:

Exibe o log da mensagem

exim -Mvl <message ID>

Exibe o corpo da mensagem

exim -Mvb <message ID>

Exibe o cabeçalho da mensagem

exim -Mvh <message ID>
Configurando wildcard em servidor com cPanel e Apa...

O tutorial abaixo é um guest post do nosso leitor: Rafael Viana. Visitem seu site: RafaelFPViana.com

Este tutorial serve para ajudar como configurar um domínio para funcionar da seguinte forma:

http://bobmarley.letrasdemusicas.com.br

http://blew.nirvana.letrasdemusicas.com.br

Ou seja, faz com que subdomínios sejam configurados para cair na mesma página do site principal, ao invés de serem configurados para utilizarem uma pasta na conta do cliente.

O que é necessário

  • Domínio em questão precisa estar registrado e com os dns apontando para o servidor
  • Acesso ao WHM como root
  • WHM com o ConfigServer Explorer instalado ou acesso SSH como root
  • Saber a versão do Apache
  • Saber o nome de usuário de FTP/[cPanel] para o domínio a ser instalado o wildcard

Configurando os DNS

  • Acesse o WHM e vá em Main >> DNS Functions >> Edit DNS Zone
  • Procure o domínio em questão na listagem e clique no botão Edit
  • Na primeira linha do formulário em Add New Entries Below this Line adicione um * (asterístico ) no primeiro campo
  • No terceiro campo onde está com a palavra Select, selecione a opção CNAME
  • Aparecerá um novo campo, coloque o endereço do site em que estamos instalando o wildcard sem o www e com um . (ponto), geralmente este campo é idêntico ao primeiro campo no início do formulário de edição de zona de dns, portanto poderá copiar e colar sem problemas.
  • Clique em Save
  • Pronto, dns configurado, estarei utilizando o domínio dominio.com.br como teste, portanto a minha linha ficou mais ou menos assim:
* 14400 IN CNAME dominio.com.br.

Configurando o Apache

  • Primeiramente cerfique-se que o ConfigServer Explorer está instalado, sem ele você terá que fazer por SSH
  • Se o ConfigServer Explorer estiver instalado, no campo Change Directory… digite /usr/local/apache/conf/

Diretórios

  • Caso o diretório userdata não exista em /usr/local/apache/conf/ iremos criar
  • Caso o diretório std não exista em /usr/local/apache/conf/userdata/ iremos criar
  • Agora iremos criar um diretório de acordo com a sua vesão do apache, ou seja, se o seu apache é versão 2.0.63 iremos crair o diretório 2, caso a versão seja 1.3.41 iremos crair o diretório 1, isso dentro de /usr/local/apache/conf/userdata/std/, para o exemplo irei criar o diretório 1.
  • Agora crie um diretório com o nome de usuário dentro /usr/local/apache/conf/userdata/std/1/, irei criar o diretório usuario como exemplo

Arquivo

Agora que estamos dentro do diretório do usuário /usr/local/apache/conf/userdata/std/1/usuario/ crie um arquivo chamado ServerAlias.conf

Dentro deste arquivo coloque o seguinte:

ServerAlias *.dominio.com.br

Salve o arquivo

Aplicando as configurações

Agora digite o seguinte comando, poderá ser feito por SSH ou até mesmo no ConfigServer Explorer no último campo do formulário, o campo Command:

perl /scripts/ensure_vhost_includes --user=usuario

Note que em –user= eu digitei usuario, este é o meu usuário de exemplo, troque para o nome de usuário que você está configurando o wildcard.

Finalizando

Agora basta reiniciar o Apache e aguardar a propagação dos DNS.

Identificando consultas lentas no MySQL (slow-quer...

O MySQL pode geralmente causar grandes problemas num servidor quando existem consultas que abusam do sistema.

Neste artigo ensinaremos a você como identificar corretamente as consultas (queries) que estão causando problemas para o servidor.

O servidor MySQL pode escrever um log contendo as consultas que demoram mais que “X” segundos. Porém, por padrão este recurso vem desabilitado.

Vamos ver como habilitar o recurso:

1. Log no seu servidor como root
2. Abra o arquivo my.cnf:

pico /etc/my.cnf

3. Dentro da seção [mysqld] adicione as seguintes linhas

log-slow-queries = /var/log/mysql-slow.log
long_query_time = 3

Isto é apenas um exemplo. Você pode usar qualquer nome de arquivo para o log. Você também pode estipular o tempo máximo de uma consulta. A partir deste tempo,a consulta será gravada. No nosso exemplo, colocamos 3 segundos.

4. Após as alterações, salve o arquivo.

No pico, faça: CTRL+X e YES

5. Agora nós temos que criar o arquivo de log.

touch /var/log/mysql-slow.log

6. Agora vamos mudar o dono do arquivo, para que o mysql tenha permissão de escrever nele.

chown mysql.root /var/log/mysql-slow.log

7. E então, reiniciamos o mysql

service mysql restart

O serviço deverá reiniciar corretamente. Caso não reinicie, veja se você fez tudo corretamente no arquivo my.cnf.

8. Aguarde alguns minutos e então examine o conteúdo do arquivo de log que foi criado.

Um exemplo de como fazer isto:

cat /var/log/mysql-slow.log
tail /var/log/mysql-slow.log
tail -50 /var/log/mysql-slow.log

Depois de identifica a consulta, otimize ou elimine ela.

Depois que identificar o problema, é recomendado que você remova a entrada referente a slow-queries no my.cnf (ou comente ela). Isto é importante, pois o uso de slow-queries degrada a performance do mysql. Você pode comentar o arquivo my.cnf:

#log-slow-queries = /var/log/mysql-slow.log
#long_query_time = 3

Não se esqueça de reiniciar o MySQL em seguida.

service mysql restart
Lançamento cpanel-fácil 0.0.1...

Lançado oficialmente hoje o script cpanel fácil 0.0.1.

A ideia do script é automatizar as rotinas de instação e configuração de servidores linux automatizados para WHM/cpanel. Nesta primeira versão de inauguração, o script executa automaticamente as seguintes rotinas:

1. Restringe o acesso a ssh para utilizar somente o protocolo 2
2. Desabilita o uso de register_globals no php.ini
3. Desabilita dl_function no php.ini
4. Desabilita funções consideradas perigosas no php.ini
5. Altera o limite máximo de upload em php
6. Restringe o acesso a diversos arquivos de sistema, melhorando a configuração
7. Instala e configura o APF Firewall

Acesse a página do script, em:

http://www.servidorgerenciado.com.br/cpanel-facil/

Usando o comando screen...

Antes de começar, eu vou informar a vocês o que podemos fazer usando o comando screen.

Como um linux sysadmin, é muito comum você ter a necessidade de rodar vários comandos de uma vez. Você provavelmente irá abrir várias sessões do ssh para isto, porém, existe uma maneira melhor, mais segura e recomendada.

Outra necessidade que frequentemente irá surgir, é rodar um comando ou script que levará horas para terminar, como por exemplo um rsync. Isto requer que vocÊ mantenha a conexão aberta no ssh, pois se você fechar, o script ou comando também se encerrará, o que pode ser um problema se você tiver a sua conexão a internet interrompida.

Face a estes problemas, podemos começar a apresentar a vocês o comando screen.

Screen – torna possível rodar vários pseudo terminais, manipular e salvar suas entradas e saídas no screen, além de copiar e colar entre as janelas.

Vou mostar como rodar um comando que leva horas, dentro de um screen.

Vamos primeiramente instalar o screen, usando yun, apt-get, ou algum gerenciador de pacotes que você tiver disponível.  Em nosso exemplo usaremos o yum.

yum install screen

Agora digite:

screen

Este comando iniciará uma nova janela dentro do screen para você. Você tem também a opção de iniciar o comando dando um nome a janela (parametro -S). Exemplo:

screen -S janela1

Neste caso, a janela se chamará “janela1”.

O screen funciona como qualquer outra sessão dentro do ssh. Você pode digitar qualquer comando agora, que irá rodar normalmente.

Se você quiser sair da sessão do screen, deixando-a ativa, e manter o comando que estava sendo executado, faça:

Ctrl-a d (pressione control +a, solte, e em seguida aperte d)

Então, quando você quiser voltar a janela screen, digite:

screen -r

Outras opções que você tem quando está dentro do screen são:

1. Para criar uma nova sessão:

Ctrl-a c

2. Para alterar entre as sessões:

Ctrl-a n

Existem outras possiblidades de uso. Para maiores informações e ajuda, você pode utilizar no seu terminal:

man screen
Como instalar PRM (Process Resource Monitor)...

O que é e como funciona PRM (Process Resource Monitor) ?

Em poucas palavras:

PRM monitora a tabela de processos ativos. Caso algum destes processos ultrapasse o recurso definido (memória, cpu ou numero de processos), um e-mail é enviado ao administrador e como opção o processo é interrompido.”Killado”.

As configurações do prm no arquivo “conf.prm” irão determinar algumas ações do PRM. Na pasta rules alguns processo são tratados separadamente com definições particulares aos mesmos.

O PRM (Process Resource Monitor) é  sem duvida alguma muito util para evitar alguns tipos de abusos e principalmente sobrecargas desnecessárias ao servidor.
Vamos a instalação:

No SSH root, faça o download do PRM:

 wget http://www.rfxnetworks.com/downloads/prm-current.tar.gz

Descompacte o arquivo:

 tar xvfz prm-current.tar.gz

Acesse a pasta e instale:

cd prm-0.5/
./install.sh

Neste ponto o PRM já estará instalado, agora vamos configurá-lo:

Edite o arquivo de configuração:

pico /usr/local/prm/conf.prm

Na opção:

# enable kernel logging [0=disabled,1=enabled]
USE_KLOG="0"

Mude para:

# enable kernel logging [0=disabled,1=enabled]
USE_KLOG="1"

Na opção:

# enable user e-mail alerts [0=disabled,1=enabled]
USR_ALERT="0"

Mude para:

# enable user e-mail alerts [0=disabled,1=enabled]
USR_ALERT="1"

**A função USR_ALERT “1” irá habilitar o envio de e-mails de alerta ao Administrador caso algum processo ultrapasse o recurso definido.

Em:

# e-mail address for alerts
USR_ADDR="root"

Mude para:

# e-mail address for alerts
USR_ADDR="seuemail@dominio.com.br"

Na maioria das situações não será necessário fazer nenhuma outra modificação, abaixo estarei apenas fazendo uma descrição das funções (apesar de algumas serem bastante óbvias)

# path to user e-mail message file
USR_MSG="$INSPATH/usr.msg"

Este é o caminho do template para o “corpo do e-mail” de alerta que será enviado ao administrador.

# subject of e-mail alerts
SUBJ="Process status report from $HOSTNAME"

Este será o assunto do e-mail de alerta enviado ao administrador.
(A variável $HOSTNAME irá retornar o hostname de seu servidor.)

# check 5,10,15 minute load average. [1,2,3 respective of 5,10,15]
LC="1"

Este será o tempo que o PRM irá verificar o numero de processos ativos. Sendo:
1 = 5 minutos
2 = 10 minutos
3 = 15 minutos

# min load level required to run (decimal values unsupported)
MIN_LOAD="1"

Esta opção define o load mínimo para que o PRM seja ativado.

# seconds to wait before rechecking a flaged pid (pid's noted resource
# intensive but not yet killed).
WAIT="12"

Segundos para aguardar uma nova “rechecagem” de pids dos processos ativos.

# counter limit that a process must reach prior to kill. the counter value
# increases for a process flaged resource intensive on rechecks.
KILL_TRIG="3"

Limite que um processo precisa ser executado para que as regras do PRM sejam checadas.

# argument to pass onto kill commands
KARG="9"

Qual o argumento para o comando kill (padrão e recomendado 9).

# Max CPU usage readout for a process - % of all cpu resources (decimal values unsupported)
MAXCPU="40"

Máximo de CPU (em percentual) para iniciar a leitura das regras

# Max MEM usage readout for a process - % of system total memory (decimal values unsupported)
MAXMEM="20"

Máximo de Memoria (em percentual) para iniciar a leitura das regras

# Max processes for a given command - this is not max processes for user but rather the executable
MAXPS="25"

Máximo de processos para iniciar a leitura das regras.

Para finalizar , salve (ctrl+x y ) e saia do pico.

Germano P Ferreira
Administrador Linux

Como restaurar um banco no sql server express 2005...

O cenário é bastante comum. Você tem um arquivo de backup, (*.bak) e precisa restaurá-lo.

Siga os passos abaixo para restaurar o arquivo usando SQL Script (T-SQL)

Passo 1: Descubra o nome logico (logical name) do banco de dados que está no backup.

RESTORE FILELISTONLY
    FROM DISK = 'D:\BackUpYourBaackUpFile.bak'

GO

Passo 2: Use o valor da coluna LogicalName no seguinte passo:

    ----Altere o banco para single user Mode
ALTER DATABASE SeuBancoDeDados

    SET SINGLE_USER WITH
ROLLBACK IMMEDIATE

    ----Restaurar Banco
            RESTORE DATABASE SeuBancoDeDados

    FROM DISK = 'D:\BackUpYourBaackUpFile.bak'
            WITH MOVE 'SeuMDFLogicalName' TO 'D:\Data\SeuArquivoMdf.mdf',

            MOVE 'SeuLDFLogicalName' TO 'D:\Data\SeuArquivoLDF.mdf'

ALTER DATABASE YourDB SET MULTI_USER
GO
SQL Server – Rotina para backup de todos os ...

A rotina abaixo permite fazer backup de todos os bancos no sql server 2005 e também no sql server express, através de um script que pode ser executado por linha de comando, ou agendado pelo agendador de tarefas do windows (task scheduler).

Siga os passos abaixo:

1) Crie um arquivo de texto com o nome Backup_All_Databases.sql.

2) Cole o seguinte script no arquivo criado. Obs.: Altere a pasta do backup que está no início do script para a pasta que você desejar.

DECLARE @BackupFile varchar(255), @DB varchar(30), @Description varchar(255), @LogFile varchar(50)

DECLARE @Name varchar(30), @MediaName varchar(30), @BackupDirectory nvarchar(200)
SET @BackupDirectory = 'C:\Backuped_SQL_DB\'
--Add a list of all databases you don't want to backup to this.
DECLARE Database_CURSOR CURSOR FOR SELECT name FROM sysdatabases WHERE name <> 'tempdb' AND name <> 'model' AND name <> 'Northwind'

OPEN Database_Cursor
FETCH next FROM Database_CURSOR INTO @DB
WHILE @@fetch_status = 0

BEGIN
SET @Name = @DB + '( Daily BACKUP )'
SET @MediaName = @DB + '_Dump' + CONVERT(varchar, CURRENT_TIMESTAMP , 112)

SET @BackupFile = @BackupDirectory + + @DB + '_' + 'Full' + '_' +
CONVERT(varchar, CURRENT_TIMESTAMP , 112) + '.bak'
SET @Description = 'Normal' + ' BACKUP at ' + CONVERT(varchar, CURRENT_TIMESTAMP) + '.'

IF (SELECT COUNT(*) FROM msdb.dbo.backupset WHERE database_name = @DB) > 0 OR @DB = 'master'
BEGIN
SET @BackupFile = @BackupDirectory + @DB + '_' + 'Full' + '_' +

CONVERT(varchar, CURRENT_TIMESTAMP , 112) + '.bak'
--SET some more pretty stuff for sql server.
SET @Description = 'Full' + ' BACKUP at ' + CONVERT(varchar, CURRENT_TIMESTAMP) + '.'

END
ELSE
BEGIN
SET @BackupFile = @BackupDirectory + @DB + '_' + 'Full' + '_' +
CONVERT(varchar, CURRENT_TIMESTAMP , 112) + '.bak'
--SET some more pretty stuff for sql server.

SET @Description = 'Full' + ' BACKUP at ' + CONVERT(varchar, CURRENT_TIMESTAMP) + '.'
END
BACKUP DATABASE @DB TO DISK = @BackupFile
WITH NAME = @Name, DESCRIPTION = @Description ,

MEDIANAME = @MediaName, MEDIADESCRIPTION = @Description ,
STATS = 10
FETCH next FROM Database_CURSOR INTO @DB
END
CLOSE Database_Cursor
DEALLOCATE Database_Cursor

3) Execute o seguinte comando no prompt do ms-dos (ou se preferir crie agende uma tarefa com este comando).

sqlcmd -S . -i "C:\Backups\Backup_All_Databases.sql"

Se desejar agente uma tarefa para fazer o backup diariamente.

O plesk não cria o DNS do meu domínio...

O plesk não cria o DNS do meu domínio

Este problema acontece quando existe alguma referência dupla ao domínio na tabela dns_zone.
Para verificar se este é o caso, execute no prompt:

"%plesk_bin%"\dbclient.exe --direct-sql --sql="select * from  dns_zone where name like 'DominioDoUsuario.com';"

Caso você tenha dois registros, este tutorial é para você.
Descubra qual é o registro certo, fazendo:

"%plesk_bin%"\dbclient.exe --direct-sql --sql="select * from  domains where name like 'DominioDoUsuario.com';"

Verifique o valor para a coluna dns_zone_id

Verifique qual registro está errado na tabela dns_zone (é o registro que não está na tabela domains – campo dns_zone_id).

Em seguida remova o registro errado, com o seguinte comando:

"%plesk_bin%"\dbclient.exe --direct-sql --sql="delete from  dns_zone where id = IdDoRegistro;"

Para finalizar, execute:

"%plesk_bin%"\dnsmng.exe update *

« Previous Entries