Đối với một lớp lót, như di chuyển cơ sở dữ liệu, bạn có thể sử dụng --dbname
theo sau là chuỗi kết nối (bao gồm cả mật khẩu) như được nêu trong hướng dẫn pg_dump
Về bản chất.
pg_dump --dbname=postgresql://username:password@127.0.0.1:5432/mydatabase
Lưu ý: Đảm bảo rằng bạn sử dụng tùy chọn --dbname
thay vì ngắn hơn -d
và sử dụng tiền tố URI hợp lệ postgresql://
hoặc postgres://
.
Biểu mẫu URI chung là:
postgresql://[user[:password]@][netloc][:port][/dbname][?param1=value1&...]
Thực hành tốt nhất trong trường hợp của bạn (nhiệm vụ lặp đi lặp lại trong cron) điều này không nên được thực hiện vì vấn đề bảo mật. Nếu không có .pgpass
tệp, tôi sẽ lưu chuỗi kết nối dưới dạng biến môi trường.
export MYDB=postgresql://username:password@127.0.0.1:5432/mydatabase
sau đó có trong crontab của bạn
0 3 * * * pg_dump --dbname=$MYDB | gzip > ~/backup/db/$(date +%Y-%m-%d).psql.gz