Peter Palfrader pushed to branch master at snapshot / snapshot
Commits:
-
e7780d89
by Peter Palfrader at 2025-04-12T12:42:12+02:00
-
e080b7b3
by Peter Palfrader at 2025-04-12T13:03:22+02:00
3 changed files:
- + mirror/snapshot-sync-farm-incremental.service.sample
- mirror/sync-farm-incremental
- + mirror/sync-farm-incremental-ssh-trigger
Changes:
1 | +[Unit]
|
|
2 | +Description=snapshot incremental farm sync
|
|
3 | + |
|
4 | +[Service]
|
|
5 | +ExecStart=/home/snapshot/code/mirror/sync-farm-incremental |
... | ... | @@ -3,20 +3,43 @@ |
3 | 3 | set -e
|
4 | 4 | set -o pipefail
|
5 | 5 | |
6 | -farm="$(readlink -f farm)"
|
|
7 | -cd "$farm"
|
|
8 | -for i in *; do
|
|
9 | - exec 200< "$i"
|
|
6 | +if [ "$#" = 2 ]; then
|
|
7 | + farm="$1"; shift
|
|
8 | + item="$1"; shift
|
|
9 | + echo >&2 "Doing ${item}"
|
|
10 | + |
|
11 | + cd "$farm"
|
|
12 | + |
|
13 | + exec 200< "$item"
|
|
10 | 14 | flock -e 200
|
11 | 15 | |
12 | - tmpdir="$(mktemp -d --tmpdir="$i" ".incremental-update-XXXXXX")"
|
|
16 | + tmpdir="$(mktemp -d --tmpdir="$item" ".incremental-update-XXXXXX")"
|
|
13 | 17 | tmpdir="$(readlink -f "$tmpdir")"
|
14 | 18 | trap "rm -rf '$tmpdir'" EXIT
|
15 | 19 | |
16 | - ~/code/mirror/farm-list-entries --farmpath "$farm" "$i" |
|
|
17 | - ssh -4 -C snapshot-mlm-01.debian.org farm-make-update-tarball "$i" |
|
|
20 | + ~/code/mirror/farm-list-entries --farmpath "$farm" "$item" |
|
|
21 | + ssh -4 -C snapshot-mlm-01.debian.org farm-make-update-tarball "$item" |
|
|
18 | 22 | (cd $tmpdir && tar xaf -)
|
19 | 23 | |
20 | 24 | ~/code/mirror/process-farm-update --farmpath "$farm" "$tmpdir"
|
21 | 25 | rm -rf "$tmpdir"
|
22 | -done |
|
26 | +elif [ "$#" = 0 ]; then
|
|
27 | + self="${BASH_SOURCE[0]}"
|
|
28 | + |
|
29 | + farm="$(readlink -f farm)"
|
|
30 | + while :; do
|
|
31 | + rm -vf "${farm}/.incremental-sync-needed"
|
|
32 | + |
|
33 | + find "$farm" -mindepth 1 -maxdepth 1 -type d -printf '%f\n' | \
|
|
34 | + grep '^[0-9a-f][0-9a-f]$' | \
|
|
35 | + sort -R | \
|
|
36 | + xargs -n 1 -P 4 "$self" "$farm"
|
|
37 | + |
|
38 | + [ -e "${farm}/.incremental-sync-needed" ] || break
|
|
39 | + echo "Re-running because ${farm}/.incremental-sync-needed exists again."
|
|
40 | + done
|
|
41 | +else
|
|
42 | + echo >&2 "Usage: $0"
|
|
43 | + echo >&2 "Usage: $0 <farmpath> <dir-to-process [0-9a-f][0-9a-f]>"
|
|
44 | + exit 1
|
|
45 | +fi |
1 | +#!/bin/bash
|
|
2 | + |
|
3 | +set -e
|
|
4 | +set -o pipefail
|
|
5 | +farm="$(readlink -f farm)"
|
|
6 | + |
|
7 | +touch "${farm}/.incremental-sync-needed"
|
|
8 | +systemctl --user start snapshot-sync-farm-incremental.service |