Обсуждение: Looking for a linux tool to automate PG admin tasks

Поиск
Список
Период
Сортировка

Looking for a linux tool to automate PG admin tasks

От
Jean-Christophe Boggio
Дата:
Hello,
I have several servers with many databases on them for different 
applications.
I need to execute some tasks on some databases depending on some criteria.

For example, execute query xxx but only on databases where table 
public.sometable exists or if number of rows in table yyy is > 1M.
Before reinventing the wheel with ugly bash scripts, do you know of some 
tools that would suit my case ?
Some tasks will have to execute periodically (with crons probably) and 
others will be one-off.
CLI tools if possible because I'm working remotely on those servers of 
course.
Thanks,
JC




Re: Looking for a linux tool to automate PG admin tasks

От
Keith Christian
Дата:
Expect comes to mind.
I've automated many CLI based systems with it.
------Keith



On Thu, Oct 16, 2025, 07:17 Jean-Christophe Boggio <postgresql@thefreecat.org> wrote:
Hello,
I have several servers with many databases on them for different
applications.
I need to execute some tasks on some databases depending on some criteria.

For example, execute query xxx but only on databases where table
public.sometable exists or if number of rows in table yyy is > 1M.
Before reinventing the wheel with ugly bash scripts, do you know of some
tools that would suit my case ?
Some tasks will have to execute periodically (with crons probably) and
others will be one-off.
CLI tools if possible because I'm working remotely on those servers of
course.
Thanks,
JC



Re: Looking for a linux tool to automate PG admin tasks

От
hubert depesz lubaczewski
Дата:
On Thu, Oct 16, 2025 at 03:17:16PM +0200, Jean-Christophe Boggio wrote:
> Hello,
> I have several servers with many databases on them for different
> applications.
> I need to execute some tasks on some databases depending on some criteria.
> For example, execute query xxx but only on databases where table
> public.sometable exists or if number of rows in table yyy is > 1M.
> Before reinventing the wheel with ugly bash scripts, do you know of some
> tools that would suit my case ?
> Some tasks will have to execute periodically (with crons probably) and
> others will be one-off.
> CLI tools if possible because I'm working remotely on those servers of
> course.

Well, I'd just use psql, with some simple script using \gexec
functionality. Solves virtually any problem of this kind.

Best regards,

depesz




Re: Looking for a linux tool to automate PG admin tasks

От
Ron Johnson
Дата:
On Thu, Oct 16, 2025 at 9:46 AM hubert depesz lubaczewski <depesz@depesz.com> wrote:
On Thu, Oct 16, 2025 at 03:17:16PM +0200, Jean-Christophe Boggio wrote:
> Hello,
> I have several servers with many databases on them for different
> applications.
> I need to execute some tasks on some databases depending on some criteria.
> For example, execute query xxx but only on databases where table
> public.sometable exists or if number of rows in table yyy is > 1M.
> Before reinventing the wheel with ugly bash scripts, do you know of some
> tools that would suit my case ?
> Some tasks will have to execute periodically (with crons probably) and
> others will be one-off.
> CLI tools if possible because I'm working remotely on those servers of
> course.

Well, I'd just use psql, with some simple script using \gexec
functionality. Solves virtually any problem of this kind.

Ditto.  bash scripts are only ugly if you write ugly bash.

--
Death to <Redacted>, and butter sauce.
Don't boil me, I'm still alive.
<Redacted> lobster!

Re: Looking for a linux tool to automate PG admin tasks

От
Roland Müller
Дата:
May be Ansible? There is a dedicated module for Postgresql and a lot of modules for general tasks such as installation etc. https://docs.ansible.com/ansible/latest/collections/community/postgresql/index.html

Br
Roland 

Ron Johnson <ronljohnsonjr@gmail.com> ezt írta (időpont: 2025. okt. 16., Cs 17:12):
On Thu, Oct 16, 2025 at 9:46 AM hubert depesz lubaczewski <depesz@depesz.com> wrote:
On Thu, Oct 16, 2025 at 03:17:16PM +0200, Jean-Christophe Boggio wrote:
> Hello,
> I have several servers with many databases on them for different
> applications.
> I need to execute some tasks on some databases depending on some criteria.
> For example, execute query xxx but only on databases where table
> public.sometable exists or if number of rows in table yyy is > 1M.
> Before reinventing the wheel with ugly bash scripts, do you know of some
> tools that would suit my case ?
> Some tasks will have to execute periodically (with crons probably) and
> others will be one-off.
> CLI tools if possible because I'm working remotely on those servers of
> course.

Well, I'd just use psql, with some simple script using \gexec
functionality. Solves virtually any problem of this kind.

Ditto.  bash scripts are only ugly if you write ugly bash.

--
Death to <Redacted>, and butter sauce.
Don't boil me, I'm still alive.
<Redacted> lobster!

Re: Looking for a linux tool to automate PG admin tasks

От
raphi
Дата:
Hi,

if you don't want to deal with bash scripts and everything that comes 
with it (like manually distributing them every time you change 
something), you could look into ansible. It's pretty straight forward 
once you've got the hang of it and if you have gitlab, you can run the 
playbooks in a (scheduled) pipeline. It also scales very well and if you 
add new databases automatically to your inventory, you'll never have to 
login to a server again. The biggest caveat though is that it needs ssh 
access to remotely execute the plays, but if you can install bash 
scripts I figure you already have ssh access.

have fun ;)
raphi

Am 16.10.2025 um 15:17 schrieb Jean-Christophe Boggio:
> Hello,
> I have several servers with many databases on them for different 
> applications.
> I need to execute some tasks on some databases depending on some 
> criteria.
>
> For example, execute query xxx but only on databases where table 
> public.sometable exists or if number of rows in table yyy is > 1M.
> Before reinventing the wheel with ugly bash scripts, do you know of 
> some tools that would suit my case ?
> Some tasks will have to execute periodically (with crons probably) and 
> others will be one-off.
> CLI tools if possible because I'm working remotely on those servers of 
> course.
> Thanks,
> JC
>
>
>




Re: Looking for a linux tool to automate PG admin tasks

От
bertrand HARTWIG
Дата:

Hi all,

An option worth considering is Ansible AWX (the open-source version of Ansible Tower).

It allows you to:

  • Schedule jobs easily (no need for external crons),

  • Track job executions and results in a clear web UI,

  • Manage credentials and inventories securely,

  • And of course, execute Ansible playbooks or ad-hoc commands conditionally across multiple servers and databases.

For your use case — running SQL queries on specific databases that meet certain criteria — you could write lightweight Ansible playbooks and let AWX handle the orchestration, scheduling, and logging.

It’s simple to set up and provides much better visibility and control than scattered bash scripts.

Best,

Bertrand

ps.: i am using AWX every day for this kind of job


Le 17 oct. 2025 à 06:16, Roland Müller <rolmur@gmail.com> a écrit :

May be Ansible? There is a dedicated module for Postgresql and a lot of modules for general tasks such as installation etc. https://docs.ansible.com/ansible/latest/collections/community/postgresql/index.html

Br
Roland 

Ron Johnson <ronljohnsonjr@gmail.com> ezt írta (időpont: 2025. okt. 16., Cs 17:12):
On Thu, Oct 16, 2025 at 9:46 AM hubert depesz lubaczewski <depesz@depesz.com> wrote:
On Thu, Oct 16, 2025 at 03:17:16PM +0200, Jean-Christophe Boggio wrote:
> Hello,
> I have several servers with many databases on them for different
> applications.
> I need to execute some tasks on some databases depending on some criteria.
> For example, execute query xxx but only on databases where table
> public.sometable exists or if number of rows in table yyy is > 1M.
> Before reinventing the wheel with ugly bash scripts, do you know of some
> tools that would suit my case ?
> Some tasks will have to execute periodically (with crons probably) and
> others will be one-off.
> CLI tools if possible because I'm working remotely on those servers of
> course.

Well, I'd just use psql, with some simple script using \gexec
functionality. Solves virtually any problem of this kind.

Ditto.  bash scripts are only ugly if you write ugly bash.

--
Death to <Redacted>, and butter sauce.
Don't boil me, I'm still alive.
<Redacted> lobster!