back.sh 文件
#!/bin/bash
BACKUP_DIR=./backup
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
BACKUP_NAME=backup_$TIMESTAMP.tar.gz
# 创建备份目录
mkdir -p $BACKUP_DIR
# 备份 db_data 卷
docker exec postgres tar czvf /tmp/db_data_$BACKUP_NAME /var/lib/postgresql/data
docker cp postgres:/tmp/db_data_$BACKUP_NAME $BACKUP_DIR
docker exec postgres rm /tmp/db_data_$BACKUP_NAME
# 删除过期备份
find $BACKUP_DIR -name "backup_*" -mtime +7 -exec rm {} \;
# 安装自动任务
Apt install cron
# 查看运行状态
systemctl status cron
# 启动
systemctl start cron
# 停止
systemctl stop cron
# 重启
systemctl restart cron
# 设置定时任务
vim /etc/crontab
0 0 * * * root /home/phase/odoo/backup.sh
# 查看是否自动启动
systemctl is-enabled cron
Enabled 自动
Disable 未自动