Files
jiu/.gitea/workflows/backup.yml
T
wangjia 7c90661d1a
Deploy / deploy (push) Failing after 1m5s
fix(ci): 修复备份路径和 SSH key 换行问题
2026-05-08 02:03:27 +08:00

37 lines
1.1 KiB
YAML

name: DB Backup
on:
schedule:
- cron: '0 18 * * *' # UTC 18:00 = 北京时间 02:00
workflow_dispatch:
jobs:
backup:
runs-on: ubuntu-latest
steps:
- name: Setup SSH
run: |
mkdir -p ~/.ssh
printf '%s' "${{ secrets.EC2_SSH_KEY }}" > ~/.ssh/ec2.pem
chmod 600 ~/.ssh/ec2.pem
ssh-keyscan -H ${{ secrets.EC2_HOST }} >> ~/.ssh/known_hosts
- name: Dump MySQL to NAS
env:
EC2_HOST: ${{ secrets.EC2_HOST }}
EC2_USER: ${{ secrets.EC2_USER }}
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
run: |
BACKUP_DIR=/volume1/docker/backups/jiu-db
mkdir -p $BACKUP_DIR
FILENAME="jiu_db_$(date +%Y%m%d_%H%M%S).sql.gz"
ssh -i ~/.ssh/ec2.pem ${EC2_USER}@${EC2_HOST} \
"docker exec jiu_mysql mysqldump -uroot -p${DB_PASSWORD} jiu_db" \
| gzip > ${BACKUP_DIR}/${FILENAME}
find $BACKUP_DIR -name "*.sql.gz" -mtime +30 -delete
echo "Saved: ${BACKUP_DIR}/${FILENAME}"
- name: Cleanup SSH key
if: always()
run: rm -f ~/.ssh/ec2.pem