ubuntu20.04pgsql定时备份不需要密码
时间: 2023-09-18 21:12:14 浏览: 48
在 Ubuntu 20.04 上,可以使用 `pg_dump` 命令备份 PostgreSQL 数据库,并使用 `cron` 定时任务来实现定时备份。
为了避免每次备份都需要输入密码,可以在 `pg_hba.conf` 文件中添加一条规则,允许本地执行备份脚本的用户无需密码即可连接到 PostgreSQL 数据库。
1. 打开 `pg_hba.conf` 文件,该文件通常位于 `/etc/postgresql/<version>/main/pg_hba.conf`,其中 `<version>` 为 PostgreSQL 版本号。
```
sudo nano /etc/postgresql/<version>/main/pg_hba.conf
```
2. 在文件末尾添加以下内容:
```
# Allow local backup user to connect without password
local all backup trust
```
上述规则允许本地连接的 `backup` 用户无需密码即可连接到 PostgreSQL 数据库。
注意:这种设置会减弱安全性,建议仅在备份操作时打开,备份完成后及时恢复安全设置。
3. 保存并关闭文件。
4. 创建备份脚本,例如 `pg_backup.sh`,并在其中添加以下内容:
```
#!/bin/bash
# 定义备份文件名和路径
BACKUP_FILE="/path/to/backup/directory/backup_$(date +%Y%m%d%H%M%S).sql"
# 执行备份命令
pg_dump -U username -h hostname -p portnumber dbname > $BACKUP_FILE
# 压缩备份文件
gzip $BACKUP_FILE
```
上述脚本将会使用 `pg_dump` 命令备份数据库,并将备份文件以当前时间戳命名并保存到指定目录下,并使用 gzip 压缩备份文件。
注意:在备份脚本中,需要将 `username`、`hostname`、`portnumber` 和 `dbname` 替换为实际的数据库连接参数。
5. 将备份脚本添加到定时任务中,例如每天凌晨 2 点执行备份:
```
0 2 * * * sh /path/to/pg_backup.sh
```
上述命令将会在每天凌晨 2 点执行 `/path/to/pg_backup.sh` 脚本。
通过以上步骤,即可实现 Ubuntu 20.04 上 PostgreSQL 数据库的定时备份,并且不需要输入密码即可连接到数据库。