====== Jobs ====== [[https://www.pgadmin.org/docs/pgadmin4/development/pgagent_install.html]] {{it:postgresql:jobs:installing_pgagent.mht|mht}} - Installing pgAgent\\ [[https://gist.github.com/peterneave/83cefce2a081add244ad7dc1c53bc0c3]] {{it:postgresql:jobs:install_pgagent_on_postgres_10_debian_linux_.mht|mht}} - Install pgAgent on Postgres 10 (Debian Linux)\\ 1. Установить pgagent sudo apt install pgagent # Create .pgpass file. sudo su - postgres echo localhost:5432:*:pgagent:securepassword >> ~/.pgpass chmod 600 ~/.pgpass chown postgres:postgres /var/lib/postgresql/.pgpass 2. Setup directory for logging mkdir /var/log/pgagent chown -R postgres:postgres /var/log/pgagent chmod g+w /var/log/pgagent 3. Create a config file DBNAME=postgres DBUSER=pgagent DBHOST=localhost DBPORT=5432 # ERROR=0, WARNING=1, DEBUG=2 LOGLEVEL=1 LOGFILE="/var/log/pgagent/pgagent.log" 4. Create systemd service [Unit] Description=PgAgent for PostgreSQL After=syslog.target After=network.target [Service] Type=forking User=postgres Group=postgres # Location of the configuration file EnvironmentFile=/etc/pgagent.conf # Where to send early-startup messages from the server (before the logging # options of pgagent.conf take effect) # This is normally controlled by the global default set by systemd # StandardOutput=syslog # Disable OOM kill on the postmaster OOMScoreAdjust=-1000 ExecStart=/usr/bin/pgagent -s ${LOGFILE} -l ${LOGLEVEL} host=${DBHOST} dbname=${DBNAME} user=${DBUSER} port=${DBPORT} KillMode=mixed KillSignal=SIGINT Restart=on-failure # Give a reasonable amount of time for the server to start up/shut down TimeoutSec=300 [Install] WantedBy=multi-user.target 5. Start Service sudo -i systemctl daemon-reload systemctl disable pgagent systemctl enable pgagent systemctl start pgagent 6. Enable auto rotation of logs /var/log/pgagent/*.log { weekly rotate 10 copytruncate delaycompress compress notifempty missingok su root root } logrotate -f /etc/logrotate.d/pgagent 7. В базе postgres CREATE EXTENSION pgagent; CREATE USER "pgagent" WITH LOGIN NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION encrypted password 'securepassword'; GRANT USAGE ON SCHEMA pgagent TO pgagent; GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA pgagent TO pgagent; GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA pgagent TO pgagent; 8. В целевой базе CREATE USER "pgagent" WITH LOGIN NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION encrypted password 'securepassword'; GRANT USAGE ON SCHEMA TO pgagent; GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA TO pgagent; GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA TO pgagent;