#!/bin/bash # Predetermined username USERNAME="root" echo "enter the server IP address or full hostname (without the final slash), e.g.: http://Tower or http://192.168.1.100" # Check if a URL was provided as a parameter if [ -z "$1" ]; then echo "Usage: $0 " exit 1 fi echo "ControlR support script starting ..." URL="$1" # Prompt the user for the password read -sp "Enter password for $USERNAME: " PASSWORD echo # Temporary file for cookies COOKIE_FILE=/tmp/cookies API="$URL:2382" cd /tmp rm -rf controlrs mkdir controlrs pushd controlrs # login curl -L -b "$COOKIE_FILE" -c "$COOKIE_FILE" -H "Content-Type: application/x-www-form-urlencoded" -d "username=$USERNAME&password=$PASSWORD" --insecure -X POST $URL/login # get files curl -X GET -L -b "$COOKIE_FILE" -c "$COOKIE_FILE" --insecure -k -u "$USERNAME:$PASSWORD" "$URL/" -o index.html curl -X GET -L -b "$COOKIE_FILE" -c "$COOKIE_FILE" --insecure -k -u "$USERNAME:$PASSWORD" "$URL/Dashboard" -o dashboard.html curl -X GET -L -b "$COOKIE_FILE" -c "$COOKIE_FILE" --insecure -k -u "$USERNAME:$PASSWORD" "$URL/Docker" -o docker.html curl -X GET -L -b "$COOKIE_FILE" -c "$COOKIE_FILE" --insecure -k -u "$USERNAME:$PASSWORD" "$URL/VMs" -o vms.html curl -X GET -L -b "$COOKIE_FILE" -c "$COOKIE_FILE" --insecure -k -u "$USERNAME:$PASSWORD" "$API/api/v1/info" -o api.html curl -X GET -L -b "$COOKIE_FILE" -c "$COOKIE_FILE" --insecure -k -u "$USERNAME:$PASSWORD" "$URL/plugins/dynamix.docker.manager/include/DockerContainers.php" -o docker65.html curl -X GET -L -b "$COOKIE_FILE" -c "$COOKIE_FILE" --insecure -k -u "$USERNAME:$PASSWORD" "$URL/plugins/dynamix.vm.manager/include/VMMachines.php" -o vms65.html curl -X GET -L -b "$COOKIE_FILE" -c "$COOKIE_FILE" --insecure -k -u "$USERNAME:$PASSWORD" "$URL/state/var.ini" -o var.ini curl -X GET -L -b "$COOKIE_FILE" -c "$COOKIE_FILE" --insecure -k -u "$USERNAME:$PASSWORD" "$URL/state/disks.ini" -o disks.ini curl -X GET -L -b "$COOKIE_FILE" -c "$COOKIE_FILE" --insecure -k -u "$USERNAME:$PASSWORD" "$URL/state/shares.ini" -o shares.ini curl -X GET -L -b "$COOKIE_FILE" -c "$COOKIE_FILE" --insecure -k -u "$USERNAME:$PASSWORD" "$URL/state/users.ini" -o users.ini curl -X GET -L -b "$COOKIE_FILE" -c "$COOKIE_FILE" --insecure -k -u "$USERNAME:$PASSWORD" "$URL/state/cpuload.ini" -o cpuload.ini TOKEN=$(curl -X GET -L -b "$COOKIE_FILE" -c "$COOKIE_FILE" --insecure -k -u "$USERNAME:$PASSWORD" "$URL/state/var.ini" | grep -Po 'csrf_token="\K.*?(?=")') curl -X POST -b "$COOKIE_FILE" -c "$COOKIE_FILE" --insecure -k -u "$USERNAME:$PASSWORD" -d "action=get_content_json&csrf_token=${TOKEN}" "$URL/plugins/unassigned.devices/UnassignedDevices.php" -o udev.json # remove registration info awk '!/regFILE=/' var.ini > var.tmp && mv var.tmp var.ini awk '!/regGUID=/' var.ini > var.tmp && mv var.tmp var.ini awk '!/regTy=/' var.ini > var.tmp && mv var.tmp var.ini awk '!/regTo=/' var.ini > var.tmp && mv var.tmp var.ini awk '!/regTm=/' var.ini > var.tmp && mv var.tmp var.ini awk '!/regTm2=/' var.ini > var.tmp && mv var.tmp var.ini awk '!/regGen=/' var.ini > var.tmp && mv var.tmp var.ini awk '!/flashGUID=/' var.ini > var.tmp && mv var.tmp var.ini awk '!/flashProduct=/' var.ini > var.tmp && mv var.tmp var.ini awk '!/flashVendor=/' var.ini > var.tmp && mv var.tmp var.ini # remove disks serial info sed -i -E 's/id=\"(.*?)\"/id=\"generic\"/g' disks.ini sed -i -E 's/idSb=\"(.*?)\"/idSb=\"generic\"/g' disks.ini sed -i -E 's/\"serial\":\"[^"]+\"/\"serial\":\"ugeneric\"/g' udev.json sed -i -E 's/\"serial_short\":\"[^"]+\"/\"serial_short\":\"ugeneric\"/g' udev.json popd # create zip file zip -r controlr.zip controlrs rm -rf controlrs rm cookies echo "ControlR support script finished" echo "Please send controlr.zip to the support email"