एक-लाइनर के लिए, एक डेटाबेस को माइग्रेट करने के लिए जैसे आप --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