Hospedagem Segura — página inicial

Linux e SSH

Comandos SSH para servidor cPanel/WHM em 2026: scripts, whmapi1 e Linux

Seleção dos comandos SSH que um administrador de servidor cPanel/WHM usa no dia a dia em 2026: atualizar, reiniciar serviços, empacotar e suspender contas, consultar o WHM pelo whmapi1 e achar o que lota o disco, pesa na CPU ou aparece nos logs. O CentOS saiu de cena; veja os sistemas aceitos hoje.

  • Por equipe técnica da Hospedagem Segura
  • Atualizado em 10/10/2026
  • 8 min de leitura

Texto do artigo

Neste artigo
  1. O cPanel em 2026: sem CentOS, com AlmaLinux, CloudLinux e Ubuntu
  2. Scripts do cPanel: caminho completo e os mais usados
  3. whmapi1: as funções do WHM direto no terminal
  4. Espaço em disco: df, du e find
  5. Processos, carga e memória
  6. Logs do cPanel e do servidor
  7. Perguntas frequentes

Os comandos SSH mais úteis num servidor cPanel/WHM em 2026 se dividem em três grupos: os scripts do próprio cPanel, em /usr/local/cpanel/scripts (atualizar, reiniciar serviços, empacotar, restaurar e suspender contas); o whmapi1, que executa as funções do WHM direto no terminal; e os comandos Linux de sempre para disco, processos e logs. Abaixo está a seleção que um administrador usa no dia a dia, com a sintaxe conferida na documentação oficial da cPanel.

Um aviso antes: o título antigo deste artigo falava em CentOS, e isso mudou. A versão 110 foi a última do cPanel a rodar no CentOS 7, que está sem suporte desde 30/06/2024. Os comandos do cPanel são os mesmos nos sistemas atuais; os comandos Linux foram rodados de verdade num AlmaLinux 9.8.

O cPanel em 2026: sem CentOS, com AlmaLinux, CloudLinux e Ubuntu

Pela documentação e pelos anúncios de versão da cPanel, os sistemas aceitos hoje são AlmaLinux 8, 9 e 10, CloudLinux 8, 9 e 10 e Ubuntu 24.04 LTS. O Ubuntu 22.04 tem a versão 136 como a última com suporte, e o Rocky Linux deixou de ser aceito a partir da versão 134, lançada em março de 2026: novas instalações e atualizações nele ficam bloqueadas.

Se ainda existe um servidor CentOS 7 com cPanel, a cPanel mantém o ELevate, um script que atualiza o sistema no lugar (CentOS 7 para AlmaLinux 8, depois AlmaLinux 8 para 9). Depois de baixá-lo como indica o artigo de suporte da cPanel, o primeiro passo é a checagem de bloqueios:

/scripts/elevate-cpanel --check

A própria cPanel avisa que a atualização do sistema pode causar perda de dados: faça backup fora do servidor antes. Em muitos casos, montar um servidor novo e transferir as contas dá menos trabalho.

Scripts do cPanel: caminho completo e os mais usados

Os tutoriais antigos usam o atalho /scripts. A documentação atual pede o caminho completo, /usr/local/cpanel/scripts, e alerta que rodar um script fora da lista documentada pode danificar o servidor. Rode como root.

Atualizar o cPanel e conferir se há atualização em andamento

/usr/local/cpanel/scripts/upcp --bg
/usr/local/cpanel/scripts/upcp-running
Com --bg, a saída vai para /var/cpanel/updatelogs/update.<data>. A opção --force reinstala todos os arquivos.

Reiniciar e checar serviços

O script restartsrv segue o padrão restartsrv_<serviço>, com opções como --check, --restart, --reload, --stop e --start:

/usr/local/cpanel/scripts/restartsrv_httpd --restart
/usr/local/cpanel/scripts/restartsrv_exim --check
/usr/local/cpanel/scripts/restartsrv_mysql --restart
/usr/local/cpanel/scripts/restartsrv_dovecot --restart
/usr/local/cpanel/scripts/find_outdated_services --never-restart
O último lista os serviços que precisam de reinício depois de atualizações, sem reiniciar nada.

Em servidor cPanel, prefira o restartsrv ao systemctl para os serviços do painel: é a ferramenta que a cPanel documenta para isso.

Contas: backup, restauração e suspensão

/usr/local/cpanel/scripts/pkgacct usuario /home/backups
/usr/local/cpanel/scripts/restorepkg /home/backups/cpmove-usuario.tar.gz
/usr/local/cpanel/scripts/suspendacct usuario "Pagamento pendente"
/usr/local/cpanel/scripts/unsuspendacct usuario
O pkgacct gera o cpmove-usuario.tar.gz com arquivos, e-mails e bancos; o restorepkg restaura esse arquivo, inclusive em outro servidor.

O pkgacct é o jeito mais seguro de levar uma conta para outro servidor cPanel. Para contas grandes, a opção --split divide o arquivo em partes, e --skipmail ou --skiphomedir deixam de fora o que você não precisa.

Apache, PHP e SSL

/usr/local/cpanel/scripts/rebuildhttpdconf --preview
/usr/local/cpanel/scripts/rebuildhttpdconf
/usr/local/cpanel/scripts/restartsrv_httpd --restart
/usr/local/cpanel/bin/autossl_check --user=usuario
O rebuildhttpdconf não reinicia o Apache; por isso o restartsrv_httpd logo depois. Note que o autossl_check fica em /usr/local/cpanel/bin.

whmapi1: as funções do WHM direto no terminal

Tudo o que o WHM faz pela tela tem uma função na WHM API 1, e o comando whmapi1 chama essas funções pelo SSH. A saída padrão é YAML; com --output=jsonpretty, ela vem em JSON indentado. No CloudLinux, a documentação manda usar o caminho completo, /usr/local/cpanel/bin/whmapi1.

whmapi1 version
whmapi1 --output=jsonpretty listaccts
whmapi1 listaccts searchtype=domain search=exemplo.com.br
whmapi1 listaccts want=user,domain,diskused
whmapi1 accountsummary user=usuario
whmapi1 suspendacct user=usuario reason="Pagamento pendente"
whmapi1 unsuspendacct user=usuario
O search do listaccts aceita expressão regular; searchtype pode ser domain, owner, user, ip ou package.

A vantagem do whmapi1 sobre os scripts é a saída estruturada: dá para montar relatórios e automações com jq ou num script, sem raspar texto. Quando um retorno vier com result: 0, o campo reason explica o motivo.

Espaço em disco: df, du e find

Disco cheio derruba e-mail, banco de dados e sites ao mesmo tempo. Em servidor cPanel, os vilões mais comuns são backups esquecidos dentro da home, arquivos error_log que crescem sem parar dentro de public_html e caixas de e-mail grandes. Esta sequência acha o culpado em segundos:

Saída de df, du e find mostrando o uso da partição /home, as contas maiores e os arquivos acima de 100 MB, incluindo um error_log de 420 MB
df mostra a partição, du mostra a conta e find aponta os arquivos grandes
df -h
du -sh /home/* | sort -h
du -ah --max-depth=1 /home/usuario | sort -h | tail -n 10
find /home -type f -size +100M -exec ls -lh {} + | awk '{print $5, $9}'
find /home -name error_log -size +50M

Antes de apagar qualquer coisa, confirme com o dono da conta. Um error_log gigante costuma ser sintoma: leia as últimas linhas com tail -n 50 para achar o erro de PHP que o alimenta e corrija a causa. Se o espaço acabou no /tmp, veja o artigo sobre a partição /tmp cheia no cPanel.

Processos, carga e memória

Quando o servidor fica lento, o primeiro passo é ver a carga, a memória e quem está consumindo CPU. No teste abaixo, um script de um usuário preso num laço ocupava 100% de um núcleo:

Saída de uptime, free e ps ordenado por CPU mostrando um processo python3 do usuário a 100 por cento, depois encerrado com kill
ps ordenado por CPU acha o processo; kill encerra
uptime
free -h
ps aux --sort=-%cpu | head -n 10
ps aux --sort=-%mem | head -n 10
ps -u usuario -o pid,etime,%cpu,cmd
top -c

O load average do uptime é a média de processos querendo CPU em 1, 5 e 15 minutos; compare com o número de núcleos (nproc). No free, olhe a coluna available, não a free: o Linux usa memória sobrando como cache. Para encerrar um processo, tente kill <PID> primeiro e deixe o kill -9 só para o que não responde.

Logs do cPanel e do servidor

A documentação da cPanel lista onde fica cada log. Os que mais se consultam:

  • /usr/local/cpanel/logs/error_log e /usr/local/cpanel/logs/login_log: erros e logins do cPanel, do WHM e do Webmail.
  • /var/log/exim_mainlog: todo o tráfego de e-mail do Exim.
  • /var/log/maillog (AlmaLinux e CloudLinux) ou /var/log/mail.log (Ubuntu): Dovecot, IMAP e POP.
  • /var/log/apache2/error_log: erros do Apache.
  • /etc/apache2/logs/domlogs/: um log de acesso por domínio.
  • /var/log/mysqld.log: erros do MySQL e do MariaDB nas versões atuais.
  • /var/log/secure (AlmaLinux e CloudLinux) ou /var/log/auth.log (Ubuntu): logins por SSH.
  • /usr/local/cpanel/logs/cphulkd.log: bloqueios do cPHulk contra força bruta.

Para ver quem está tentando entrar por SSH e quais portas estão abertas:

Log de tentativas de senha errada no SSH, contagem por IP de origem e portas abertas com ss
Tentativas de login por SSH agrupadas por IP e portas em escuta
grep -E 'Failed password|Invalid user' /var/log/secure | tail -n 20
grep -E 'Failed password|Invalid user' /var/log/secure | grep -oE 'from [0-9.]+' | sort | uniq -c | sort -rn | head
ss -tlnp
tail -f /usr/local/cpanel/logs/login_log

E para descobrir quais IPs e quais páginas mais pesam no Apache, a mesma ideia aplicada ao log de acesso. No teste, um único IP disparou dezenas de POST contra o wp-login.php, o desenho clássico de força bruta no WordPress:

Análise do log de acesso do Apache com contagem de requisições por IP e por URL, com destaque para POST no wp-login.php
Um IP com dezenas de POST no wp-login.php: força bruta
awk '{print $1}' /etc/apache2/logs/domlogs/exemplo.com.br | sort | uniq -c | sort -rn | head
awk '{print $6, $7}' /etc/apache2/logs/domlogs/exemplo.com.br | sort | uniq -c | sort -rn | head
No teste, o log estava em /var/log/httpd/access_log (Apache sem cPanel); no cPanel, use o arquivo do domínio em domlogs.

Administrar um servidor cPanel pelo SSH dá controle total, mas também significa acompanhar atualizações, disco, segurança e backup. No servidor dedicado com cPanel, a licença oficial entra na proposta e a administração pode ficar com a equipe; na VPS com cPanel, você mantém o acesso root e escolhe a faixa de contas da licença.

Perguntas frequentes

Onde ficam os scripts do cPanel?

Os scripts ficam em /usr/local/cpanel/scripts, e alguns, como o autossl_check, em /usr/local/cpanel/bin. O atalho /scripts ainda aparece em tutoriais, mas a documentação da cPanel pede o caminho completo e avisa que rodar scripts fora da lista documentada pode danificar o servidor.

Como reiniciar o Apache, o Exim ou o MySQL no cPanel pelo SSH?

Use o restartsrv do cPanel: /usr/local/cpanel/scripts/restartsrv_httpd --restart para o Apache, restartsrv_exim para o Exim e restartsrv_mysql para o MySQL ou MariaDB. A opção --check só confere se o serviço está rodando, sem reiniciar.

Como listar as contas cPanel pela linha de comando?

Rode whmapi1 listaccts como root; com --output=jsonpretty a saída vem em JSON. Para filtrar, use searchtype=domain search=exemplo.com.br, e para escolher os campos, want=user,domain,diskused. No CloudLinux, chame /usr/local/cpanel/bin/whmapi1.

O cPanel ainda funciona no CentOS 7?

Não há mais atualização: a versão 110 foi a última do cPanel a suportar o CentOS 7, que chegou ao fim da vida em 30/06/2024. O caminho é migrar para AlmaLinux, CloudLinux ou Ubuntu 24.04, com o ELevate da cPanel ou com um servidor novo e transferência das contas.

Servidor com cPanel/WHM e acesso root

Servidor dedicado ou VPS com cPanel/WHM e licença oficial. No dedicado, a administração pode ficar com a equipe, sob proposta.