Para um one-liner, como migrar um banco de dados, você pode usar --dbnameseguido por uma cadeia de conexão (incluindo a senha), conforme indicado no manual pg_dump
Em essência.
pg_dump --dbname=postgresql://username:password@127.0.0.1:5432/mydatabase
Nota: Certifique-se de usar a opção em --dbnamevez da mais curta -de use um prefixo de URI válido postgresql://ou postgres://.
O formulário URI geral é:
postgresql://[user[:password]@][netloc][:port][/dbname][?param1=value1&...]
A melhor prática no seu caso (tarefa repetitiva no cron) não deve ser feita devido a problemas de segurança. Se não fosse o .pgpassarquivo, eu salvaria a cadeia de conexão como uma variável de ambiente.
export MYDB=postgresql://username:password@127.0.0.1:5432/mydatabase
então tenha no seu crontab
0 3 * * * pg_dump --dbname=$MYDB | gzip > ~/backup/db/$(date +%Y-%m-%d).psql.gz