postgresql 自动备份 bat实现
在Windows环境下,你可以创建一个批处理文件(.bat)来自动执行PostgreSQL数据库的备份。以下是一个简单的批处理脚本示例,它使用pg_dump
命令来备份PostgreSQL数据库,并使用tar
命令将备份文件压缩。
@echo off
setlocal
:: 设置数据库参数
set DB_NAME=your_db_name
set DB_USER=your_username
set DB_PASS=your_password
set DB_HOST=localhost
:: 设置备份路径和文件名
set BACKUP_PATH=C:\path\to\your\backup\directory
set BACKUP_FILENAME=%DB_NAME%_%date:~-4,4%%date:~-10,2%%date:~-7,2%_%time:~0,2%%time:~3,2%%time:~6,2%.tar.gz
:: 创建备份并压缩
pg_dump -U %DB_USER% -h %DB_HOST% -W -F t %DB_NAME% > "%BACKUP_PATH%\%DB_NAME%.backup"
tar -czf "%BACKUP_PATH%\%BACKUP_FILENAME%" -C "%BACKUP_PATH%" "%DB_NAME%.backup"
del "%BACKUP_PATH%\%DB_NAME%.backup"
:: 清理旧的备份文件(可选)
forfiles /p "%BACKUP_PATH%" /s /m *.tar.gz /d -7 /c "cmd /c del @path"
endlocal
请确保将your_db_name
、your_username
、your_password
、C:\path\to\your\backup\directory
替换为你的数据库名、用户名、密码和备份路径。此脚本会在每次运行时创建一个新的备份文件,并保留7天内的备份。
你可以通过Windows的任务计划程序来设置这个批处理文件的定时执行。
注意:确保pg_dump
命令的路径添加到了系统的环境变量中,或者使用完整路径来调用pg_dump
。同样,确保tar
命令可用,或者使用7-Zip或其他压缩工具替换tar
命令。
评论已关闭