-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathpg-schedule-backups
executable file
·68 lines (58 loc) · 1.56 KB
/
pg-schedule-backups
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/bin/sh
set -e
set -u
my_hours="${1:-}"
my_months="${2:-}"
my_passfile="${3:-}"
my_backup_dir="${4:-}"
my_prefix="${5:-}"
if test -z "${my_months}" ||
test -z "${my_hours}" ||
test -z "${my_passfile}" ||
test -z "${my_backup_dir}"; then
echo ""
echo "USAGE"
echo " pg-schedule-backups <hours-between> <months-to-keep> <pg-passfile> <backup-dir> [file-prefix]"
echo ""
echo "EXAMPLE"
# shellcheck disable=SC1003
echo ' pg-schedule-backups 8 60 \'
# shellcheck disable=SC1003
echo ' /mnt/pg_backups/heroku-postgresql-foo-100.pgpass \'
# shellcheck disable=SC1003
echo ' /mnt/pg_backups/ \'
echo " foobar-app"
echo ""
exit 1
fi
if test -z "${my_prefix}"; then
my_prefix='postgres'
fi
main() { (
my_sudo=
if command -v sudo > /dev/null; then
my_sudo=sudo
fi
if ! command -v serviceman > /dev/null; then
echo ""
echo "ERROR:"
echo " 'serviceman' is not installed"
echo " (see https://webinstall.dev/serviceman for details)"
echo ""
echo "TO FIX:"
echo ""
echo " curl -fsS https://webi.sh/serviceman | sh"
echo " source ~/.config/envman/PATH.env"
echo ""
echo ""
exit 1
fi
$my_sudo env PATH="${PATH}" \
serviceman add \
--system \
--username "$(whoami)" \
--path="${PATH}" \
--name pg-loop-backup \
pg-loop-backup "${my_hours}" "${my_months}" "${my_passfile}" "${my_backup_dir}" "${my_prefix}"
); }
main