एक-लाइनर के लिए, एक डेटाबेस को माइग्रेट करने के लिए जैसे आप --dbnameएक कनेक्शन स्ट्रिंग (पासवर्ड सहित) का उपयोग कर सकते हैं जैसा कि pg_dump मैनुअल में कहा गया है
संक्षेप में।
pg_dump --dbname=postgresql://username:password@127.0.0.1:5432/mydatabase
नोट: सुनिश्चित करें कि आप विकल्प --dbnameको छोटे के बजाय उपयोग करते हैं -dऔर एक वैध यूआरआई उपसर्ग का उपयोग करते हैं, postgresql://या postgres://।
सामान्य यूआरआई फॉर्म है:
postgresql://[user[:password]@][netloc][:port][/dbname][?param1=value1&...]
आपके मामले में सबसे अच्छा अभ्यास (क्रोन में दोहराव कार्य) सुरक्षा मुद्दों के कारण ऐसा नहीं किया जाना चाहिए। यदि यह .pgpassफ़ाइल के लिए नहीं था, तो मैं एक पर्यावरण चर के रूप में कनेक्शन स्ट्रिंग को बचाऊंगा।
export MYDB=postgresql://username:password@127.0.0.1:5432/mydatabase
तो अपने crontab में है
0 3 * * * pg_dump --dbname=$MYDB | gzip > ~/backup/db/$(date +%Y-%m-%d).psql.gz