バッチファイルでPostgreSQLデータベースをバックアップしたい話
4185 ワード
環境:Windows10 Pro 1909, PostgreSQL10.0
- やりたいこと
実行するだけでdumpファイルをとりたい。
何度実行しても問題がないようにしたい。
- 実際のバッチファイル
※ DB接続情報は実際の環境に合わせて書き換える前提
REM //戻り値
SET C_OKRET=0
SET C_NGRET=1
REM //DB接続情報
SET PGHOST=localhost
SET PGPORT=5432
SET PGDATABASE=dbname
SET PGUSER=dbuser
REM //バックアップディレクトリ設定(カレントディレクトリ)
SET BACKUP_DIR=%~dp0
REM //日付情報(バックアップディレクトリに付与する年月日時分秒を取得)
SET TMPTIME1=%TIME: =0%
SET TMPTIME2=%TMPTIME1:.=%
SET NOWTIME=%TMPTIME2::=%
SET NOW=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%_%NOWTIME:~0,6%
PUSHD %~DP0
REM //タイムスタンプのあるフォルダの作成
MKDIR %BACKUP_DIR%\%NOW%
REM //バックアップ実行
pg_dump -h %PGHOST% -U postgres -c %PGDATABASE% > %BACKUP_DIR%\%NOW%\%PGDATABASE%.dump
REM //エラー発生時はカレントディレクトリにログを出力
IF %errorlevel% neq 0 (
ECHO %date% %time:~0,8% 実行に失敗しました ErrorCode=%errorlevel%^
FileName「%SQLFILE%」 >> %~DP0\psql_log.txt
POPD
EXIT /b %C_NGRET%
) ELSE (
POPD
EXIT /b %C_OKRET%
)
バッチファイルの終了を「EXIT /b ~」とすることで、呼び出し元へステータスを返せるように指定。
なお、返り値は数値であることに注意。
Author And Source
この問題について(バッチファイルでPostgreSQLデータベースをバックアップしたい話), 我々は、より多くの情報をここで見つけました https://qiita.com/taha/items/eda57586798d16b202f8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .