home · contact · privacy
cd453adc74ed10f8642c58b66242c023ac71a499
[config] / buster / setup_scripts / backup_app.sh
1 #!/bin/sh
2 set -e
3 set -x
4
5 if [ "$#" -lt 3 ]; then
6     echo 'Need at least three arguments: service name, DB name, and backup directory names.'
7     #echo 'Need at least two arguments: service name and backup directory or (prefixed with "db:") DB names.'
8     false
9 fi
10 app="$1"
11 db_name="$2"
12 shift 2
13
14 cd /tmp
15 rm -rf "${app}_backup"
16 mkdir "${app}_backup"
17 chmod 777 "${app}_backup"
18
19 service "${app}" stop
20
21 su postgres -lc "pg_dump -d ${db_name} --format=custom -f /tmp/${app}_backup/${db_name}.pgdump"
22 for target in "$@"; do
23     mkdir -p "${app}_backup${target}"
24     cp -a "${target}" "${app}_backup${target}"
25 done
26 #for target in "$@"; do
27 #    prefix=$(echo "${target}" | cut -c-3)
28 #    if [ "${prefix}" = "DB:" ]; then
29 #        db_name=$(echo "${ŧarget}" | cut -c4-)
30 #    else
31 #        cp -a "${target}" "backup${target}"
32 #    fi
33 #done
34
35 tar cf "${app}_backup.tar" "${app}_backup"
36 rm -rf "${app}_backup"
37 chown plom:plom "${app}_backup.tar"
38 mv "${app}_backup.tar" /home/plom