Files
restic-backup/scheduler.sh
2026-02-20 17:04:55 +08:00

41 lines
930 B
Bash
Executable File

#!/usr/bin/env bash
tasks=(
"misskey"
)
export basedir="/backup"
export AWS_ACCESS_KEY_ID="<YOUR-OSS-ACCESS-KEY-ID>"
export AWS_SECRET_ACCESS_KEY="<YOUR-OSS-SECRET-ACCESS-KEY>"
export AWS_DEFAULT_REGION="cn-shanghai"
export RESTIC_REPOSITORY="s3:https://oss-cn-shanghai-internal.aliyuncs.com/backup"
export RESTIC_PASSWORD="xxxxxxxxxxxxx"
LOG_DIR="$basedir/log"
WORK_DIR="$basedir/work"
LOCK_DIR="$basedir/lock"
log() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*"
}
main() {
mkdir -p "$LOG_DIR" "$WORK_DIR" "$LOCK_DIR"
for task in "${tasks[@]}"; do
script_file="$basedir/$task/task.sh"
log_file="$LOG_DIR/$task.log"
if [ -x "$script_file" ]; then
log "Running $task..."
# TODO: 备份失败时推送通知
flock -n "$LOCK_DIR/$task.lock" "$script_file" >> "$log_file" 2>&1
log "Finished $task"
else
echo "Skipping $task: not executable or not found"
fi
done
}
main