49 lines
1.8 KiB
Bash
49 lines
1.8 KiB
Bash
#!/bin/bash
|
|
|
|
container=${1}
|
|
customer=${2}
|
|
if [[ -z ${container} ]]; then
|
|
container='mariadb_backup_mariadb_backup_1'
|
|
fi
|
|
if [[ -z ${customer} ]]; then
|
|
location='<%= @location %>'
|
|
fi
|
|
|
|
dexec="docker exec ${container}"
|
|
|
|
password=$(${dexec} env | grep MYSQL_ROOT_PASSWORD | awk -F '=' '{print $2}')
|
|
|
|
mysql="${dexec} mysql -p${password}"
|
|
|
|
if [[ "$(${mysql} -NB -e 'select exists(select * from information_schema.TABLES where TABLE_SCHEMA = "nextcloud" and TABLE_NAME = "oc_global_scale_users")')" == "1" ]]
|
|
then
|
|
users="$(${mysql} -NB -e 'select uid,displayname from nextcloud.oc_global_scale_users')"
|
|
fi
|
|
users="${users}"$'\n'"$(${mysql} -NB -e 'select uid,displayname from nextcloud.oc_users')"
|
|
if [[ "$(${mysql} -NB -e 'select exists(select * from information_schema.TABLES where TABLE_SCHEMA = "nextcloud" and TABLE_NAME = "oc_user_saml_users")')" == "1" ]]
|
|
then
|
|
users="${users}"$'\n'"$(${mysql} -NB -e 'select uid,displayname from nextcloud.oc_user_saml_users')"
|
|
fi
|
|
users="$(echo "${users}" | sort | uniq)"
|
|
|
|
project="statistics"
|
|
bucket="drive-server-coms"
|
|
base_dir="${project}:${bucket}"
|
|
mountpoint="/opt/statistics"
|
|
customer_dir="${mountpoint}/${location}"
|
|
mkdir -p "${customer_dir}"
|
|
rclone mkdir --no-check-certificate --webdav-headers "Host,sunet.drive.sunet.se" --use-cookies "${base_dir}/${location}"
|
|
|
|
echo "${users}" | awk 'BEGIN{print "{"} {print t "\""$1"\": \""$2"\""} {t=","} END{print "}"}' | jq . >"${customer_dir}/users.json"
|
|
status=0
|
|
if ! jq . "${customer_dir}/users.json" &>/dev/null; then
|
|
status=1
|
|
fi
|
|
if [[ ${status} -eq 0 ]]; then
|
|
# something is wrong if we cant copy the file in 30 seconds, so we should note that
|
|
if ! timeout 30s rclone copy -c --no-check-certificate --webdav-headers "Host,sunet.drive.sunet.se" --use-cookies "${customer_dir}/users.json" "${base_dir}/${location}/"; then
|
|
status=1
|
|
fi
|
|
fi
|
|
exit ${status}
|