diff options
| author | Yuqian Yang <crupest@crupest.life> | 2025-02-22 18:11:35 +0800 | 
|---|---|---|
| committer | Yuqian Yang <crupest@crupest.life> | 2025-02-23 01:36:11 +0800 | 
| commit | 1e9b2436eaffa4130f6a69c3a108f6feb9dd4ac8 (patch) | |
| tree | 585b6124b0100371b4bd8a291c4a59fbb5fbf1fe /docker/auto-backup | |
| parent | a931457d61b053682d5e89a0cfb411e43e5e21c7 (diff) | |
| download | crupest-1e9b2436eaffa4130f6a69c3a108f6feb9dd4ac8.tar.gz crupest-1e9b2436eaffa4130f6a69c3a108f6feb9dd4ac8.tar.bz2 crupest-1e9b2436eaffa4130f6a69c3a108f6feb9dd4ac8.zip  | |
feat(services): refactor structure.
Diffstat (limited to 'docker/auto-backup')
| -rw-r--r-- | docker/auto-backup/Dockerfile | 15 | ||||
| -rwxr-xr-x | docker/auto-backup/daemon.bash | 94 | 
2 files changed, 0 insertions, 109 deletions
diff --git a/docker/auto-backup/Dockerfile b/docker/auto-backup/Dockerfile deleted file mode 100644 index 943c96f..0000000 --- a/docker/auto-backup/Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -FROM debian -RUN apt-get update && apt-get install -y \ -    tini ca-certificates coreutils bash tar zstd \ -    && rm -rf /var/lib/apt/lists/* - -ENV CRUPEST_AUTO_BACKUP_INIT_DELAY= -ENV CRUPEST_AUTO_BACKUP_INTERVAL=1d - -ADD --chmod=755 https://github.com/tencentyun/coscli/releases/download/v1.0.3/coscli-v1.0.3-linux-amd64 /app/coscli -ADD --chmod=755 daemon.bash /app/ - -VOLUME [ "/data" ] - -ENTRYPOINT ["tini", "--"] -CMD [ "/app/daemon.bash" ] diff --git a/docker/auto-backup/daemon.bash b/docker/auto-backup/daemon.bash deleted file mode 100755 index 0c6beec..0000000 --- a/docker/auto-backup/daemon.bash +++ /dev/null @@ -1,94 +0,0 @@ -#!/usr/bin/env bash - -set -e - -die() { -  echo -e "\033[31mError: " "$@" "\033[0m" >&2 -  exit 1 -} - -note() { -  echo -e "\033[33mNote: " "$@" "\033[0m" -} - -success() { -  echo -e "\033[32mSuccess: " "$@" "\033[0m" -} - -# Check I'm root. -if [[ $EUID -ne 0 ]]; then -  die "This script must be run as root" -fi - -if [[ ! -f /run/secrets/auto-backup ]]; then -  die "/run/secrets/auto-backup not found, please use docker secrets to set it." -fi - -if [[ -z "$CRUPEST_AUTO_BACKUP_INTERVAL" ]]; then -  die "Backup interval not set, please set it!" -fi - -# shellcheck source=/dev/null -. /run/secrets/auto-backup - -note "Checking secrets..." -[[ -n "$CRUPEST_AUTO_BACKUP_COS_ENDPOINT" ]] || die "COS endpoint not set!" -[[ -n "$CRUPEST_AUTO_BACKUP_COS_BUCKET" ]] || die "COS bucket not set!" -[[ -n "$CRUPEST_AUTO_BACKUP_COS_SECRET_ID" ]] || die "COS secret ID  not set!" -[[ -n "$CRUPEST_AUTO_BACKUP_COS_SECRET_KEY" ]] || die "COS secret key not set!" -success "Secrets check passed." - -note "Checking tools..." -tar --version -zstd --version -/app/coscli --version -success "Tools check passed." - -echo "Backup interval set to $CRUPEST_AUTO_BACKUP_INTERVAL..." - -if [[ -z "$CRUPEST_AUTO_BACKUP_INIT_DELAY" ]]; then -  echo "Initial delay not set, will do a backup immediately!" -else -  echo "Initial delay set to $CRUPEST_AUTO_BACKUP_INIT_DELAY ..." -  sleep "$CRUPEST_AUTO_BACKUP_INIT_DELAY" -fi - -function backup { -  note "Begin backup..." - -  # Get current time and convert it to YYYY-MM-DDTHH:MM:SSZ -  current_time="$(date -u +%Y-%m-%dT%H:%M:%SZ)" -  echo "Current time UTC: $current_time" - -  backup_file_ext="tar.zst" -  tmp_file="/tmp/data.$backup_file_ext" - -  echo "Create $tmp_file for data..." -  tar -cp --zstd -f "$tmp_file" -C / data - -  du -h "$tmp_file" | cut -f1 | xargs echo "Size of $tmp_file:" - -  des_file_name="$current_time.$backup_file_ext" -  echo "Upload $des_file_name to COS..." - -  /app/coscli --init-skip \ -    --secret-id "${CRUPEST_AUTO_BACKUP_COS_SECRET_ID}" \ -    --secret-key "${CRUPEST_AUTO_BACKUP_COS_SECRET_KEY}" \ -    --endpoint "${CRUPEST_AUTO_BACKUP_COS_ENDPOINT}" \ -    cp "$tmp_file" "cos://${CRUPEST_AUTO_BACKUP_COS_BUCKET}/$des_file_name" - -  echo "Remove tmp file..." -  rm "$tmp_file" - -  echo "$des_file_name" >>/data/backup.log - -  success "Finish backup!" -} - -# forever loop -while true; do -  backup - -  echo "Sleep for $CRUPEST_AUTO_BACKUP_INTERVAL for next backup..." -  sleep "$CRUPEST_AUTO_BACKUP_INTERVAL" -done  | 
