在網上找到一篇文章《PostgreSQL Windows自動備份指令碼》
http://blog.it580.com/1910
覺得不錯,試了一下,發現批次檔執行停止在提示輸入密碼那。
>pg_dump -U postgres -W database1 > c:/backup.tar
>password:
現找到自動輸入密碼的方法,修改如下:
echo off<br />rem 功能:postgresql windows 平台 自動備份指令碼<br />rem 在備份目錄d:/backup下分月建立目錄,在每月目錄中儲存當月的分天備份檔案<br />rem 在備份前在命令列執行echo %date% 確保日期格式是yyyy-mm-dd,如果不是的話,請到控制台修改地區與語言選項中修改日期格式。<br />rem 作者:David Pan<br />rem 日期:2009-02-19 </p><p>@set Filename=%date:~0,10%.backup<br />@set Dirname=%date:~0,7%</p><p>rem %Dirname%* 這句是去掉Dirname後面的空格</p><p>@set pgPath=C:/Program Files/PostgreSQL/8.4/bin</p><p>rem 如果當天是一號則建立新月份目錄<br />@if %date:~8,2% == 01 (md d:/backup/"%Dirname%") </p><p>rem 如果沒有當月目錄則建立當月目錄<br />@if not exist d:/backup/"%Dirname%" (md d:/backup/"%Dirname%") </p><p>rem 執行備份任務,備份databasename資料庫,請將version換成你的pgsql版本,或者根據你的pg_dump檔案所在位置修改。<br />rem 原來的語句<br />rem "%pgPath%/pg_dump.exe" -i -h localhost -p 5432 -U postgres -F c -b -v -f "d:/backup/%Dirname%/%Filename%" Database1 </p><p>rem 輸出密碼指令碼,缺點很明顯密碼暴露 (我找到的自動輸入密碼的方法)<br />echo set pws=WScript.CreateObject("WScript.Shell")>%temp%/pws.vbs<br />echo pws.SendKeys "123{ENTER}">>%temp%/pws.vbs</p><p>rem 執行指令碼自動輸入密碼(我找到的自動輸入密碼的方法)<br />wscript %temp%/pws.vbs&"%pgPath%/pg_dump.exe" -i -h localhost -p 5432 -U postgres -F c -b -v -f "d:/backup/%Dirname%/%Filename%" BenShop</p><p>rem 刪除指令碼<br />del %temp%/pws.vbs</p><p>rem 將備份檔案打包成rar格式,並刪除原始備份檔案。(確保你已經安裝了winrar,如果你沒有安裝在預設目錄,請根據winrar檔案的位置修改路徑)<br />@if exist d:/backup/"%Dirname%/%Filename%" ("%ProgramFiles%/winrar/winrar" a -df "d:/backup/%Dirname%/%Filename%.rar" "d:/backup/%Dirname%/%Filename%") </p><p>rem 自動刪除三月前的備份,根據建立日期判斷<br />@if %date:~8,2% ==25 (for /f "skip=3" %%a in ("dir /b/ad/o:-d d:/backup") do @if exist d:/backup/%%a rd /s /q d:/backup/%%a) </p><p>@echo on
------------------------------------------------------------------------
在網上查到資料,不用輸入密碼,可以這樣設定針對某個ip進行trust
我這邊提示密碼主要是我這的pg_hba.conf
設了對本地要密碼md5認證。
----------------------------------------------------------------------------
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# IPv4 local connections:
host all all 127.0.0.1/32 md5
-----------------------------------------------------------------------------
改成這樣,本地備份就不用輸入密碼了(改後要重啟服務)
----------------------------------------------------------------------------
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# IPv4 local connections:
host all all 127.0.0.1/32 trust
-----------------------------------------------------------------------------