默认情况下postgresql不支持命令行中有密码,有时为了使用命令行定时备份,就需要自动读取密码
psql- 使用.pgpass(linux)和pgpass.conf(win) 来存储密码, 参考PostgreSQL 自动输入密码
- 使用环境变量PGPASSWORD
- psql -c “dt” “host=127.0.0.1 user=hello password=123 dbname=test”
- 使用db url pg_dump.exe -Fc -v --dbname=postgresql://username:pass@127.0.0.1:5432/dbname -f a.bak
- 使用脚本 postgresql备份
@ECHO OFF @setlocal enableextensions @cd /d "%~dp0" set PGPASSWORD=12334 SET PGPATH="E:Program FilesPostgreSQL12bin" SET SVPATH=e:db-backup SET PRJDB=postgres set d=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%%TIME:~0,2%%TIME:~3,2%%TIME:~6,2% SET DBDUMP=%PRJDB%_%d%.bak @ECHO OFF %PGPATH%pg_dump -Fc -v -n reporting -n scada -h 127.0.0.1 -U user -d %PRJDB% -f %SVPATH%%DBDUMP% echo Backup Taken Complete %SVPATH%%DBDUMP% forfiles /p %SVPATH% /d /m *.bak -5 /c "cmd /c echo deleting @file ... && del /f @path"



