Instalando e Configurando o pgAgent no Linux (pgAdmin e PostgreSQL)

O pgAgent é um agente de agendamento de tarefas para o banco de dados Postgresql. O pgAgent executa scripts em lote (batch), shell scripts e várias tarefas SQL em agendamentos até complexos. Será mostrado como configurar corretamente o pgAgent para seu bom funcionamento.

[ Hits: 7.213 ]

Por: Buckminster em 22/02/2023


Instalação e Configuração



Instalação

Depois de já instalado o Postgresql e o pgAdmin4 (versão do pgAdmin) no Debian e derivados utilize os seguintes comandos no terminal:

# apt-get update
# apt-get install pgagent

Não será abordada aqui a instalação "na unha".

Configuração

Antes de usar o pgAdmin para gerenciar o pgAgent você deve criar as extensões pgAgent do banco de dados no pgAdmin.

Para instalar/configurar o pgAgent em um host PostgreSQL, abra o pgAdmin (desktop ou web) e conecte-se ao seu banco de dados.

Para versões de servidor 9.1 ou posterior e pgAgent 3.4.0 ou posterior, clique na ferramenta Consulta (Query Tool), insira o seguinte comando:

CREATE EXTENSION pgagent;

e clique no ícone Executar (Execute/Refresh).

Depois insira o seguinte comando:

CREATE LANGUAGE plpgsql;

e clique no ícone Executar (Execute/Refresh).

Feito isso volte ao terminal e vamos criar/configurar quatro arquivos necessários para o bom funcionamento do pgAgent.

No final terão as explicações do porquê é necessário cada arquivo.

# vim /etc/init.d/pgagent.sh

(usei o vim, use o teu editor de texto preferido)

Coloque dentro:

#!/bin/bash
systemctl start pgagent
exit 0

Salve, saia e dê permissão de execução:

# chmod +x /etc/init.d/pgagent.sh

Verifique se já tem o arquivo rc-local.service:

# find / -type f -name rc-local.service

Caso já tiver o arquivo, somente verifique o conteúdo e vá para o próximo passo.

Caso não tiver, vamos criá-lo:

# vim /usr/lib/systemd/system/rc-local.service

NOTA: para Debian e derivados (Ubuntu etc), caso tua distribuição seja outra verifique o caminho certo.

Coloque dentro:

#  SPDX-License-Identifier: LGPL-2.1-or-later
#
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

# This unit gets pulled automatically into multi-user.target by
# systemd-rc-local-generator if /etc/rc.local is executable.
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no

Salve e saia. Não é necessário dar permissão de execução.

Crie o arquivo rc.local:

# vim /etc/rc.local

Coloque dentro:

#!/bin/bash
systemctl start pgagent
pgagent hostaddr=127.0.0.1 port=5433 dbname=banco1 user=postgres  # essa linha você deve modificar de acordo com teu banco, explicações no final
pgagent hostaddr=127.0.0.1 port=5432 dbname=banco2 user=postgres  # essa linha você deve modificar de acordo com teu banco, explicações no final
exit 0

Salve, saia e dê permissão de execução:

# chmod +x /etc/rc.local

NOTA: estamos usando o rc.local em conjunto com o rc-local.service do Systemd por uma questão de organização e facilidade.

Pesquise pelo arquivo pgagent.service:

# find / -type f -name pgagent.service

Caso não exista, vamos criá-lo:

# vim /usr/lib/systemd/system/pgagent.service

Coloque dentro:

[Unit]
Description=Arquivo do PgAgent feito por eu mesmo
ConditionFileIsExecutable=/usr/bin/pgagent
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/pgagent start
ExecStop=/usr/bin/pgagent stop
ExecReload=/usr/bin/pgagent restart
Restart=always
RestartSec=10
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Salve e saia. Não é necessário dar permissão de execução.

E está feita toda a configuração necessária para o bom funcionamento do pgAgent.

Com essas configurações você pode executar no terminal:

Para torná-lo inicializável com o sistema:

# systemctl enable pgagent

Para iniciá-lo:

# systemctl start pgagent

Para pará-lo:

# systemctl stop pgagent

Para reiniciá-lo:

# systemctl restart pgagent

Para verificar o status de funcionamento:

# systemctl status pgagent

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Instalação e Configuração
   3. Informações sobre os arquivos
Outros artigos deste autor

Antivírus ClamAV com proteção em tempo real

Enviar mensagem ao usuário trabalhando com as opções do php.ini

Instalação do PostgreSQL com Apache 2, PHP 5, OpenSSL no Debian Wheezy 7.7 64 bits com systemd e chroot

Permissões do Linux

Configuração do sistema, DHCP, compartilhamento e DNS no Debian Squeeze

Leitura recomendada

Autenticação no PostgreSQL - com exemplos

Instalando PostgreSQL 8.1 com extensão para dados espaciais (PostGis) e interface de gerenciamento (PgAdmin3)

Unificando bases de dados com Schemas

PostgreSQL - Instalação inicial no Debian Wheezy 64 bits

Programando PostgreSQL + PHP

  
Comentários
[1] Comentário enviado por removido em 22/02/2023 - 15:07h

Estranho configurar dessa forma. Com base na documentação oficial => https://uploadme.me/view/N18



[2] Comentário enviado por Buckminster em 23/02/2023 - 14:01h


[1] Comentário enviado por amarildosertorio em 22/02/2023 - 15:07h

Estranho configurar dessa forma. Com base na documentação oficial => https://uploadme.me/view/N18





O arquivo /etc/pgagent/pgagent_12.conf não tem no Debian nem no Ubuntu.
Na instalação (apt-get install pgagent) é criado somente o /usr/bin/pgagent que é o executável.

[3] Comentário enviado por removido em 24/02/2023 - 18:08h


O arquivo /etc/pgagent/pgagent_12.conf não tem no Debian nem no Ubuntu.
Na instalação (apt-get install pgagent) é criado somente o /usr/bin/pgagent que é o executável.


https://gist.github.com/peterneave/83cefce2a081add244ad7dc1c53bc0c3

[4] Comentário enviado por Buckminster em 24/02/2023 - 22:10h


[3] Comentário enviado por amarildosertorio em 24/02/2023 - 18:08h


O arquivo /etc/pgagent/pgagent_12.conf não tem no Debian nem no Ubuntu.
Na instalação (apt-get install pgagent) é criado somente o /usr/bin/pgagent que é o executável.


https://gist.github.com/peterneave/83cefce2a081add244ad7dc1c53bc0c3



Sim, é outra forma de instalar e configurar o PgAgent.
Aqui o comando update-rc.d pgagent.sh defaults não surtiu efeito (talvez coisas do systemd), por isso tive que criar o rc.local.

E no arquivo /usr/lib/systemd/system/pgagent.service tice que mudar a linha
ExecStart=/usr/bin/pgagent -s ${LOGFILE} -l ${LOGLEVEL} host=${DBHOST} dbname=${DBNAME} user=${DBUSER} port=${DBPORT}
para
ExecStart=/etc/rc.local start e criar o rc.local assim mesmo, pois com a linha original estava dando o erro
pgagent.service: start request repeated too quickly.
e não iniciava o serviço nem na reinicialização e nem com o comando systemctl start pgagent.service

Somente deu certo quando fiz a alteração.
Como eu disse, são várias formas de configurar no Linux.


[5] Comentário enviado por maurixnovatrento em 12/03/2023 - 14:59h


bom artigo.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/mxnt10


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts