1 创建备份脚本backup.sh
#!/bin/bash
# 定义备份文件的路径
BACKUP_DIR="/path/backup/directory"
TIMESTAMP=$(date +%Y%m%d%H%M%S)
# 执行备份命令
docker exec postgres pg_dump -h localhost -p 5432 -U mydba mydb > $BACKUP_DIR/bac_$TIMESTAMP.sql
此处 postgres是数据库容器的名称,mydba是数据库的用户名,mydb是需要备份的数据库库名。
2 授予备份脚本执行权限
chmod +x backup.sh
3 创建 Cron 定时执行作业
使用以下命令打开 Cron 表编辑器:
crontab -e
在文件中添加以下行设置定时备份的时间,例子是在每周日下午 14 点 执行backup.sh脚本:
0 14 * * 0 /bin/bash /path/to/backup.sh
0:表示分钟字段,设置为 0 表示在每小时的第 0 分钟执行。
14:表示小时字段,设置为 14 表示在下午 2 点执行。
*:表示日期字段,设置为 * 表示在任何日期执行。
*:表示月份字段,设置为 * 表示在任何月份执行。
0:表示星期字段,设置为 0 表示在星期天执行,因为 Sunday 对应的值是 0。