blob: e4e71583196d44cb55f8771b5c2072552ab5e4bd (
plain)
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
|
#!/bin/bash
source common.sh
getPrgDir
# Get the database credentials.
declare -A creds
while read -d ';' p; do
k=$(echo ${p} | cut -d '=' -f 1)
v=$(echo ${p} | cut -d '=' -f 2)
creds[${k}]="${v}"
done < <(grep ConnectionString ${PRGDIR}/../../config/config.ini | cut -d '"' -f 2)
# The above seems the best way to get bash to let the creds assignments survive outside the loop.
# Only backup those that have not logged on since their last backup, but returning prims from sims will bypass this check.
timestamp=$(ls -o --time-style="+%s" ${PRGDIR}/../../backups/.keep | cut -d ' ' -f 5)
touch ${PRGDIR}/../../backups/.keep
# Well it was good in theory, but looks like they broke it in 8.2, no logging in or out updates to GridUser.
# Get the user names, and back 'em up.
mysql --host="${creds[Data Source]}" "${creds[Database]}" --user="${creds[User ID]}" --password="${creds[Password]}" \
-e "select FirstName,LastName from UserAccounts,GridUser where UserAccounts.PrincipalID=LEFT(GridUser.UserID,36) and GridUser.Login>${timestamp};" -ss | while read user; do
# Replace tab with space
user=${user// / }
# Find out the size of the last backup, base our later sleep on that, but do it now before backup-inventory packs it away.
sizeSleep=`sleepPerSize i "${user}"`
${PRGDIR}/backup-inventory "${user}"
# Sleep for a while, so that there is plenty of time to do the backup,
# and we are not keeping the computer very busy if there are lots of users.
sleep ${sizeSleep}
done
|