From f17b99e6cc3a2562394d298e74bd89030ce8b03c Mon Sep 17 00:00:00 2001 From: dinger1986 Date: Thu, 24 Aug 2023 23:23:35 +0100 Subject: [PATCH 01/11] Create backup.sh --- backup.sh | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 backup.sh diff --git a/backup.sh b/backup.sh new file mode 100644 index 0000000..85ed967 --- /dev/null +++ b/backup.sh @@ -0,0 +1,75 @@ +#!/usr/bin/env bash + +path=$(pwd) +echo $path + +if [[ $* == *--schedule* ]]; then + ( + crontab -l 2>/dev/null + echo "0 0 * * * $path/backup.sh --auto" + ) | crontab - + + if [ ! -d /opt/rustdesk-server-backups ]; then + sudo mkdir /opt/rustdesk-server-backups + fi + + if [ ! -d /opt/rustdesk-server-backups/daily ]; then + sudo mkdir /opt/rustdesk-server-backups/daily + fi + + if [ ! -d /opt/rustdesk-server-backups/weekly ]; then + sudo mkdir /opt/rustdesk-server-backups/weekly + fi + + if [ ! -d /opt/rustdesk-server-backups/monthly ]; then + sudo mkdir /opt/rustdesk-server-backups/monthly + fi + sudo chown ${USER}:${USER} -R /opt/rustdesk-server-backups + + printf >&2 "${GREEN}Backups setup to run at midnight and rotate.${NC}\n" + exit 0 +fi + +if [ ! -d /opt/rustdesk-server-backups ]; then + sudo mkdir /opt/rustdesk-server-backups + sudo chown ${USER}:${USER} /opt/rustdesk-server-backups + sudo apt install sqlite3 -y +fi + +dt_now=$(date '+%Y_%m_%d__%H_%M_%S') +tmp_dir=$(mktemp -d -t rustdesk-XXXXXXXXXXXXXXXXXXXXX) +sysd="/etc/systemd/system" + +mkdir -p ${tmp_dir}/rustdesk + +cp -rf /var/lib/rustdesk-server/ ${tmp_dir}/ +sqlite3 db.sqlite3 ".backup '${tmp_dir}/db_backup_file.sq3'" + +if [[ $* == *--auto* ]]; then + + month_day=$(date +"%d") + week_day=$(date +"%u") + + if [ "$month_day" -eq 10 ]; then + tar -cf /opt/rustdesk-server-backups/monthly/rustdesk-backup-${dt_now}.tar -C ${tmp_dir} . + else + if [ "$week_day" -eq 5 ]; then + tar -cf /opt/rustdesk-server-backups/weekly/rustdesk-backup-${dt_now}.tar -C ${tmp_dir} . + else + tar -cf /opt/rustdesk-server-backups/daily/rustdesk-backup-${dt_now}.tar -C ${tmp_dir} . + fi + fi + + rm -rf ${tmp_dir} + + find /opt/rustdesk-server-backups/daily/ -type f -mtime +14 -name '*.tar' -execdir rm -- '{}' \; + find /opt/rustdesk-server-backups/weekly/ -type f -mtime +60 -name '*.tar' -execdir rm -- '{}' \; + find /opt/rustdesk-server-backups/monthly/ -type f -mtime +380 -name '*.tar' -execdir rm -- '{}' \; + echo -ne "${GREEN}Backup Completed${NC}\n" + exit + +else + tar -cf /opt/rustdesk-server-backups/rustdesk-backup-${dt_now}.tar -C ${tmp_dir} . + rm -rf ${tmp_dir} + echo -ne "${GREEN}Backup saved to /opt/rustdesk-server-backups/rustdesk-backup-${dt_now}.tar${NC}\n" +fi From b6241ab778cf66e612d1e71b5c2447159069f1ee Mon Sep 17 00:00:00 2001 From: dinger1986 Date: Thu, 24 Aug 2023 23:45:40 +0100 Subject: [PATCH 02/11] Update backup.sh --- backup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backup.sh b/backup.sh index 85ed967..601efe2 100644 --- a/backup.sh +++ b/backup.sh @@ -43,7 +43,7 @@ sysd="/etc/systemd/system" mkdir -p ${tmp_dir}/rustdesk cp -rf /var/lib/rustdesk-server/ ${tmp_dir}/ -sqlite3 db.sqlite3 ".backup '${tmp_dir}/db_backup_file.sq3'" +sqlite3 db.sqlite3 .dump > ${tmp_dir}/db_backup_file.sq3 if [[ $* == *--auto* ]]; then From 145c9a8e2f70eb02862a20249ed0643514e227de Mon Sep 17 00:00:00 2001 From: dinger1986 Date: Fri, 25 Aug 2023 00:01:42 +0100 Subject: [PATCH 03/11] Update backup.sh --- backup.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/backup.sh b/backup.sh index 601efe2..335381c 100644 --- a/backup.sh +++ b/backup.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash - +uname=$(whoami) path=$(pwd) echo $path @@ -24,7 +24,7 @@ if [[ $* == *--schedule* ]]; then if [ ! -d /opt/rustdesk-server-backups/monthly ]; then sudo mkdir /opt/rustdesk-server-backups/monthly fi - sudo chown ${USER}:${USER} -R /opt/rustdesk-server-backups + sudo chown ${uname}:${uname} -R /opt/rustdesk-server-backups printf >&2 "${GREEN}Backups setup to run at midnight and rotate.${NC}\n" exit 0 @@ -32,7 +32,7 @@ fi if [ ! -d /opt/rustdesk-server-backups ]; then sudo mkdir /opt/rustdesk-server-backups - sudo chown ${USER}:${USER} /opt/rustdesk-server-backups + sudo chown ${uname}:${uname} /opt/rustdesk-server-backups sudo apt install sqlite3 -y fi From 2e0fe1ffd50eff52b1b03561e72e731721bf9385 Mon Sep 17 00:00:00 2001 From: dinger1986 Date: Fri, 25 Aug 2023 00:04:46 +0100 Subject: [PATCH 04/11] Update backup.sh --- backup.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/backup.sh b/backup.sh index 335381c..eaaaf98 100644 --- a/backup.sh +++ b/backup.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -uname=$(whoami) +usern=$(whoami) path=$(pwd) echo $path @@ -24,15 +24,15 @@ if [[ $* == *--schedule* ]]; then if [ ! -d /opt/rustdesk-server-backups/monthly ]; then sudo mkdir /opt/rustdesk-server-backups/monthly fi - sudo chown ${uname}:${uname} -R /opt/rustdesk-server-backups + sudo chown ${usern}:${usern} -R /opt/rustdesk-server-backups - printf >&2 "${GREEN}Backups setup to run at midnight and rotate.${NC}\n" + printf >&2 "Backups setup to run at midnight and rotate." exit 0 fi if [ ! -d /opt/rustdesk-server-backups ]; then sudo mkdir /opt/rustdesk-server-backups - sudo chown ${uname}:${uname} /opt/rustdesk-server-backups + sudo chown ${usern}:${usern} /opt/rustdesk-server-backups sudo apt install sqlite3 -y fi @@ -65,11 +65,11 @@ if [[ $* == *--auto* ]]; then find /opt/rustdesk-server-backups/daily/ -type f -mtime +14 -name '*.tar' -execdir rm -- '{}' \; find /opt/rustdesk-server-backups/weekly/ -type f -mtime +60 -name '*.tar' -execdir rm -- '{}' \; find /opt/rustdesk-server-backups/monthly/ -type f -mtime +380 -name '*.tar' -execdir rm -- '{}' \; - echo -ne "${GREEN}Backup Completed${NC}\n" + echo -ne "Backup Completed" exit else tar -cf /opt/rustdesk-server-backups/rustdesk-backup-${dt_now}.tar -C ${tmp_dir} . rm -rf ${tmp_dir} - echo -ne "${GREEN}Backup saved to /opt/rustdesk-server-backups/rustdesk-backup-${dt_now}.tar${NC}\n" + echo -ne "Backup saved to /opt/rustdesk-server-backups/rustdesk-backup-${dt_now}.tar" fi From 1c46003561f928650bf90dab423c08d2412e04fa Mon Sep 17 00:00:00 2001 From: dinger1986 Date: Fri, 25 Aug 2023 00:06:25 +0100 Subject: [PATCH 05/11] Update convertfromos.sh --- convertfromos.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/convertfromos.sh b/convertfromos.sh index 0d517ad..bd600c2 100644 --- a/convertfromos.sh +++ b/convertfromos.sh @@ -10,7 +10,7 @@ # 7. If you choose Domain, it will install Nginx and Certbot, allowing the API to be available on port 443 (https) and get an SSL certificate over port 80, it is automatically renewed # Get username -uname=$(whoami) +usern=$(whoami) admintoken=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c16) sudo systemctl stop gohttpserver.service @@ -116,7 +116,7 @@ if [ ! -d "/var/lib/rustdesk-server" ]; then sudo mkdir -p /var/lib/rustdesk-server/ fi -sudo chown "${uname}" -R /var/lib/rustdesk-server +sudo chown "${usern}" -R /var/lib/rustdesk-server cd /var/lib/rustdesk-server/ || exit 1 mv /opt/rustdesk/id_* /var/lib/rustdesk-server/ @@ -162,7 +162,7 @@ if [ ! -d "/var/log/rustdesk-server" ]; then echo "Creating /var/log/rustdesk-server" sudo mkdir -p /var/log/rustdesk-server/ fi -sudo chown "${uname}" -R /var/log/rustdesk-server/ +sudo chown "${usern}" -R /var/log/rustdesk-server/ sudo rm -rf /var/log/rustdesk/ # Setup systemd to launch hbbs @@ -174,8 +174,8 @@ Type=simple LimitNOFILE=1000000 ExecStart=/usr/bin/hbbs WorkingDirectory=/var/lib/rustdesk-server/ -User=${uname} -Group=${uname} +User=${usern} +Group=${usern} Restart=always StandardOutput=append:/var/log/rustdesk-server/hbbs.log StandardError=append:/var/log/rustdesk-server/hbbs.error @@ -199,8 +199,8 @@ Type=simple LimitNOFILE=1000000 ExecStart=/usr/bin/hbbr WorkingDirectory=/var/lib/rustdesk-server/ -User=${uname} -Group=${uname} +User=${usern} +Group=${usern} Restart=always StandardOutput=append:/var/log/rustdesk-server/hbbr.log StandardError=append:/var/log/rustdesk-server/hbbr.error From a70cd79e36b22527baf5533aa33647a4cf9eaa24 Mon Sep 17 00:00:00 2001 From: dinger1986 Date: Fri, 25 Aug 2023 00:07:39 +0100 Subject: [PATCH 06/11] Update install.sh --- install.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/install.sh b/install.sh index 3f0fdf5..100d8d0 100644 --- a/install.sh +++ b/install.sh @@ -9,7 +9,7 @@ # 6. If you choose Domain, it will install Nginx and Certbot, allowing the API to be available on port 443 (https) and get an SSL certificate over port 80, it is automatically renewed # Get username -uname=$(whoami) +usern=$(whoami) admintoken=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c16) ARCH=$(uname -m) @@ -104,7 +104,7 @@ if [ ! -d "/var/lib/rustdesk-server" ]; then sudo mkdir -p /var/lib/rustdesk-server/ fi -sudo chown "${uname}" -R /var/lib/rustdesk-server +sudo chown "${usern}" -R /var/lib/rustdesk-server cd /var/lib/rustdesk-server/ || exit 1 @@ -147,7 +147,7 @@ if [ ! -d "/var/log/rustdesk-server" ]; then echo "Creating /var/log/rustdesk-server" sudo mkdir -p /var/log/rustdesk-server/ fi -sudo chown "${uname}" -R /var/log/rustdesk-server/ +sudo chown "${usern}" -R /var/log/rustdesk-server/ # Setup systemd to launch hbbs rustdeskhbbs="$(cat << EOF @@ -158,8 +158,8 @@ Type=simple LimitNOFILE=1000000 ExecStart=/usr/bin/hbbs WorkingDirectory=/var/lib/rustdesk-server/ -User=${uname} -Group=${uname} +User=${usern} +Group=${usern} Restart=always StandardOutput=append:/var/log/rustdesk-server/hbbs.log StandardError=append:/var/log/rustdesk-server/hbbs.error @@ -183,8 +183,8 @@ Type=simple LimitNOFILE=1000000 ExecStart=/usr/bin/hbbr WorkingDirectory=/var/lib/rustdesk-server/ -User=${uname} -Group=${uname} +User=${usern} +Group=${usern} Restart=always StandardOutput=append:/var/log/rustdesk-server/hbbr.log StandardError=append:/var/log/rustdesk-server/hbbr.error From cce8bbbbee6a484243114cf472b8e0dba826e6d5 Mon Sep 17 00:00:00 2001 From: dinger1986 Date: Fri, 25 Aug 2023 00:08:07 +0100 Subject: [PATCH 07/11] Update update.sh --- update.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/update.sh b/update.sh index a248bba..f5ec6d9 100644 --- a/update.sh +++ b/update.sh @@ -1,7 +1,7 @@ #!/bin/bash # Get username -uname=$(whoami) # not used btw ... yet +usern=$(whoami) # not used btw ... yet # Get current release version RDLATEST=$(curl https://api.github.com/repos/rustdesk/rustdesk-server-pro/releases/latest -s | grep "tag_name"| awk '{print substr($2, 2, length($2)-3) }' | sed 's/-.*//') From 75b8f67d83124e190e21acb02e089cd74fb498f5 Mon Sep 17 00:00:00 2001 From: dinger1986 Date: Fri, 25 Aug 2023 00:10:29 +0100 Subject: [PATCH 08/11] Create restore.sh --- restore.sh | 249 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 249 insertions(+) create mode 100644 restore.sh diff --git a/restore.sh b/restore.sh new file mode 100644 index 0000000..5efba0f --- /dev/null +++ b/restore.sh @@ -0,0 +1,249 @@ +#!/usr/bin/env bash +usern=$(whoami) +path=$(pwd) +echo $path + +# Make folder /var/lib/rustdesk-server/ +if [ ! -d "/var/lib/rustdesk-server" ]; then + echo "Creating /var/lib/rustdesk-server" + sudo mkdir -p /var/lib/rustdesk-server/ + sudo chown ${usern}:${usern} -R /var/lib/rustdesk-server/ + +fi + +sudo apt update +sudo apt install sqlite3 -y + +mkdir -p ${tmp_dir}/ + +tar -xf $path/*.tar -C $tmp_dir + + +cp -rf ${tmp_dir}/ /var/lib/rustdesk-server/ +sqlite3 db.sqlite3 < db_backup_file.bak + +# Get current release version +RDLATEST=$(curl https://api.github.com/repos/rustdesk/rustdesk-server-pro/releases/latest -s | grep "tag_name"| awk '{print substr($2, 2, length($2)-3) }' | sed 's/-.*//') + +ARCH=$(uname -m) + + +# Identify OS +if [ -f /etc/os-release ]; then + # freedesktop.org and systemd + . /etc/os-release + OS=$NAME + VER=$VERSION_ID + UPSTREAM_ID=${ID_LIKE,,} + + # Fallback to ID_LIKE if ID was not 'ubuntu' or 'debian' + if [ "${UPSTREAM_ID}" != "debian" ] && [ "${UPSTREAM_ID}" != "ubuntu" ]; then + UPSTREAM_ID="$(echo ${ID_LIKE,,} | sed s/\"//g | cut -d' ' -f1)" + fi + +elif type lsb_release >/dev/null 2>&1; then + # linuxbase.org + OS=$(lsb_release -si) + VER=$(lsb_release -sr) +elif [ -f /etc/lsb-release ]; then + # For some versions of Debian/Ubuntu without lsb_release command + . /etc/lsb-release + OS=$DISTRIB_ID + VER=$DISTRIB_RELEASE +elif [ -f /etc/debian_version ]; then + # Older Debian, Ubuntu, etc. + OS=Debian + VER=$(cat /etc/debian_version) +elif [ -f /etc/SuSE-release ]; then + # Older SuSE, etc. + OS=SuSE + VER=$(cat /etc/SuSE-release) +elif [ -f /etc/redhat-release ]; then + # Older Red Hat, CentOS, etc. + OS=RedHat + VER=$(cat /etc/redhat-release) +else + # Fall back to uname, e.g. "Linux ", also works for BSD, etc. + OS=$(uname -s) + VER=$(uname -r) +fi + + +# Output debugging info if $DEBUG set +if [ "$DEBUG" = "true" ]; then + echo "OS: $OS" + echo "VER: $VER" + echo "UPSTREAM_ID: $UPSTREAM_ID" + exit 0 +fi + +cd /var/lib/rustdesk-server/ +rm -rf static/ + +echo "Installing RustDesk Server" +if [ "${ARCH}" = "x86_64" ] ; then +wget https://github.com/rustdesk/rustdesk-server-pro/releases/download/${RDLATEST}/rustdesk-server-linux-amd64.tar.gz +tar -xf rustdesk-server-linux-amd64.tar.gz +mv amd64/static /var/lib/rustdesk-server/ +sudo mv amd64/hbbr /usr/bin/ +sudo mv amd64/hbbs /usr/bin/ +rm -rf amd64/ +rm -rf rustdesk-server-linux-amd64.tar.gz +elif [ "${ARCH}" = "armv7l" ] ; then +wget "https://github.com/rustdesk/rustdesk-server-pro/releases/download/${RDLATEST}/rustdesk-server-linux-armv7.tar.gz" +tar -xf rustdesk-server-linux-armv7.tar.gz +mv armv7/static /var/lib/rustdesk-server/ +sudo mv armv7/hbbr /usr/bin/ +sudo mv armv7/hbbs /usr/bin/ +rm -rf armv7/ +rm -rf rustdesk-server-linux-armv7.tar.gz +elif [ "${ARCH}" = "aarch64" ] ; then +wget "https://github.com/rustdesk/rustdesk-server-pro/releases/download/${RDLATEST}/rustdesk-server-linux-arm64v8.tar.gz" +tar -xf rustdesk-server-linux-arm64v8.tar.gz +mv arm64v8/static /var/lib/rustdesk-server/ +sudo mv arm64v8/hbbr /usr/bin/ +sudo mv arm64v8/hbbs /usr/bin/ +rm -rf arm64v8/ +rm -rf rustdesk-server-linux-arm64v8.tar.gz +fi + +sudo chmod +x /usr/bin/hbbs +sudo chmod +x /usr/bin/hbbr + +# Make folder /var/log/rustdesk-server/ +if [ ! -d "/var/log/rustdesk-server" ]; then + echo "Creating /var/log/rustdesk-server" + sudo mkdir -p /var/log/rustdesk-server/ +fi +sudo chown "${usern}" -R /var/log/rustdesk-server/ +sudo rm -rf /var/log/rustdesk/ + +# Setup systemd to launch hbbs +rustdeskhbbs="$(cat << EOF +[Unit] +Description=RustDesk Signal Server +[Service] +Type=simple +LimitNOFILE=1000000 +ExecStart=/usr/bin/hbbs +WorkingDirectory=/var/lib/rustdesk-server/ +User=${usern} +Group=${usern} +Restart=always +StandardOutput=append:/var/log/rustdesk-server/hbbs.log +StandardError=append:/var/log/rustdesk-server/hbbs.error +# Restart service after 10 seconds if node service crashes +RestartSec=10 +[Install] +WantedBy=multi-user.target +EOF +)" +echo "${rustdeskhbbs}" | sudo tee /etc/systemd/system/rustdesk-hbbs.service > /dev/null +sudo systemctl daemon-reload +sudo systemctl enable rustdesk-hbbs.service +sudo systemctl start rustdesk-hbbs.service + +# Setup systemd to launch hbbr +rustdeskhbbr="$(cat << EOF +[Unit] +Description=RustDesk Relay Server +[Service] +Type=simple +LimitNOFILE=1000000 +ExecStart=/usr/bin/hbbr +WorkingDirectory=/var/lib/rustdesk-server/ +User=${usern} +Group=${usern} +Restart=always +StandardOutput=append:/var/log/rustdesk-server/hbbr.log +StandardError=append:/var/log/rustdesk-server/hbbr.error +# Restart service after 10 seconds if node service crashes +RestartSec=10 +[Install] +WantedBy=multi-user.target +EOF +)" +echo "${rustdeskhbbr}" | sudo tee /etc/systemd/system/rustdesk-hbbr.service > /dev/null +sudo systemctl daemon-reload +sudo systemctl enable rustdesk-hbbr.service +sudo systemctl start rustdesk-hbbr.service + +while ! [[ $CHECK_RUSTDESK_READY ]]; do + CHECK_RUSTDESK_READY=$(sudo systemctl status rustdesk-hbbr.service | grep "Active: active (running)") + echo -ne "RustDesk Relay not ready yet...${NC}\n" + sleep 3 +done + +pubname=$(find /var/lib/rustdesk-server/ -name "*.pub") +key=$(cat "${pubname}") + +echo "Tidying up install" +if [ "${ARCH}" = "x86_64" ] ; then +rm rustdesk-server-linux-amd64.tar.gz +rm -rf amd64 +elif [ "${ARCH}" = "armv7l" ] ; then +rm rustdesk-server-linux-armv7.tar.gz +rm -rf armv7 +elif [ "${ARCH}" = "aarch64" ] ; then +rm rustdesk-server-linux-arm64v8.tar.gz +rm -rf arm64v8 +fi + +# Choice for DNS or IP +PS3='Choose your preferred option, IP or DNS/Domain:' +WAN=("IP" "DNS/Domain") +select WANOPT in "${WAN[@]}"; do +case $WANOPT in +"IP") +wanip=$(dig @resolver4.opendns.com myip.opendns.com +short) +sudo ufw allow 21114/tcp + +sudo ufw enable && ufw reload +break +;; + +"DNS/Domain") +echo -ne "Enter your preferred domain/DNS address ${NC}: " +read wanip +# Check wanip is valid domain +if ! [[ $wanip =~ ^[a-zA-Z0-9]+([a-zA-Z0-9.-]*[a-zA-Z0-9]+)?$ ]]; then + echo -e "${RED}Invalid domain/DNS address${NC}" + exit 1 +fi +sudo apt -y install nginx +sudo apt -y install python3-certbot-nginx + +rustdesknginx="$( + cat </dev/null + +sudo rm /etc/nginx/sites-available/default +sudo rm /etc/nginx/sites-enabled/default + +sudo ln -s /etc/nginx/sites-available/rustdesk.conf /etc/nginx/sites-enabled/rustdesk.conf + +sudo ufw allow 80/tcp +sudo ufw allow 443/tcp + +sudo ufw enable && ufw reload + +sudo certbot --nginx -d ${wanip} + +break +;; +*) echo "Invalid option $REPLY";; +esac +done + +echo -e "Your IP/DNS Address is ${wanip}" +echo -e "Your public key is ${key}" + +echo -e "Restore is complete" From 50781866b93466fb16a8a5a00962801758d63b55 Mon Sep 17 00:00:00 2001 From: dinger1986 Date: Fri, 25 Aug 2023 00:10:53 +0100 Subject: [PATCH 09/11] Update convertfromos.sh --- convertfromos.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/convertfromos.sh b/convertfromos.sh index bd600c2..69975db 100644 --- a/convertfromos.sh +++ b/convertfromos.sh @@ -226,13 +226,13 @@ key=$(cat "${pubname}") echo "Tidying up install" if [ "${ARCH}" = "x86_64" ] ; then -rm rustdesk-server-linux-amd64.zip +rm rustdesk-server-linux-amd64.tar.gz rm -rf amd64 elif [ "${ARCH}" = "armv7l" ] ; then -rm rustdesk-server-linux-armv7.zip +rm rustdesk-server-linux-armv7.tar.gz rm -rf armv7 elif [ "${ARCH}" = "aarch64" ] ; then -rm rustdesk-server-linux-arm64v8.zip +rm rustdesk-server-linux-arm64v8.tar.gz rm -rf arm64v8 fi From b4ab33f25d0b881fa92b65600e80d21d91935bfc Mon Sep 17 00:00:00 2001 From: dinger1986 Date: Fri, 25 Aug 2023 00:14:27 +0100 Subject: [PATCH 10/11] Update restore.sh --- restore.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/restore.sh b/restore.sh index 5efba0f..366a9b8 100644 --- a/restore.sh +++ b/restore.sh @@ -116,7 +116,6 @@ if [ ! -d "/var/log/rustdesk-server" ]; then sudo mkdir -p /var/log/rustdesk-server/ fi sudo chown "${usern}" -R /var/log/rustdesk-server/ -sudo rm -rf /var/log/rustdesk/ # Setup systemd to launch hbbs rustdeskhbbs="$(cat << EOF From cde1a2e77a7d54e1d6d3c057d466e3ac8c29ac2a Mon Sep 17 00:00:00 2001 From: dinger1986 Date: Fri, 25 Aug 2023 09:05:14 +0100 Subject: [PATCH 11/11] Update backup.sh --- backup.sh | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 82 insertions(+), 2 deletions(-) diff --git a/backup.sh b/backup.sh index eaaaf98..1d0dd26 100644 --- a/backup.sh +++ b/backup.sh @@ -3,6 +3,87 @@ usern=$(whoami) path=$(pwd) echo $path +ARCH=$(uname -m) + + +# Identify OS +if [ -f /etc/os-release ]; then + # freedesktop.org and systemd + . /etc/os-release + OS=$NAME + VER=$VERSION_ID + UPSTREAM_ID=${ID_LIKE,,} + + # Fallback to ID_LIKE if ID was not 'ubuntu' or 'debian' + if [ "${UPSTREAM_ID}" != "debian" ] && [ "${UPSTREAM_ID}" != "ubuntu" ]; then + UPSTREAM_ID="$(echo ${ID_LIKE,,} | sed s/\"//g | cut -d' ' -f1)" + fi + +elif type lsb_release >/dev/null 2>&1; then + # linuxbase.org + OS=$(lsb_release -si) + VER=$(lsb_release -sr) +elif [ -f /etc/lsb-release ]; then + # For some versions of Debian/Ubuntu without lsb_release command + . /etc/lsb-release + OS=$DISTRIB_ID + VER=$DISTRIB_RELEASE +elif [ -f /etc/debian_version ]; then + # Older Debian, Ubuntu, etc. + OS=Debian + VER=$(cat /etc/debian_version) +elif [ -f /etc/SuSE-release ]; then + # Older SuSE, etc. + OS=SuSE + VER=$(cat /etc/SuSE-release) +elif [ -f /etc/redhat-release ]; then + # Older Red Hat, CentOS, etc. + OS=RedHat + VER=$(cat /etc/redhat-release) +else + # Fall back to uname, e.g. "Linux ", also works for BSD, etc. + OS=$(uname -s) + VER=$(uname -r) +fi + + +# Output debugging info if $DEBUG set +if [ "$DEBUG" = "true" ]; then + echo "OS: $OS" + echo "VER: $VER" + echo "UPSTREAM_ID: $UPSTREAM_ID" + exit 0 +fi + +# Setup prereqs for server +# Common named prereqs +PREREQ="tar" +PREREQDEB="sqlite3" +PREREQRPM="sqlite" +PREREQARCH="sqlite" + +echo "Installing prerequisites" +if [ "${ID}" = "debian" ] || [ "$OS" = "Ubuntu" ] || [ "$OS" = "Debian" ] || [ "${UPSTREAM_ID}" = "ubuntu" ] || [ "${UPSTREAM_ID}" = "debian" ]; then + sudo apt-get update + sudo apt-get install -y ${PREREQ} ${PREREQDEB} # git +elif [ "$OS" = "CentOS" ] || [ "$OS" = "RedHat" ] || [ "${UPSTREAM_ID}" = "rhel" ] ; then +# openSUSE 15.4 fails to run the relay service and hangs waiting for it +# Needs more work before it can be enabled +# || [ "${UPSTREAM_ID}" = "suse" ] + sudo yum update -y + sudo dnf install -y epel-release + sudo yum install -y ${PREREQ} ${PREREQRPM} # git +elif [ "${ID}" = "arch" ] || [ "${UPSTREAM_ID}" = "arch" ]; then + sudo pacman -Syu + sudo pacman -S ${PREREQ} ${PREREQARCH} +else + echo "Unsupported OS" + # Here you could ask the user for permission to try and install anyway + # If they say yes, then do the install + # If they say no, exit the script + exit 1 +fi + if [[ $* == *--schedule* ]]; then ( crontab -l 2>/dev/null @@ -33,7 +114,6 @@ fi if [ ! -d /opt/rustdesk-server-backups ]; then sudo mkdir /opt/rustdesk-server-backups sudo chown ${usern}:${usern} /opt/rustdesk-server-backups - sudo apt install sqlite3 -y fi dt_now=$(date '+%Y_%m_%d__%H_%M_%S') @@ -43,7 +123,7 @@ sysd="/etc/systemd/system" mkdir -p ${tmp_dir}/rustdesk cp -rf /var/lib/rustdesk-server/ ${tmp_dir}/ -sqlite3 db.sqlite3 .dump > ${tmp_dir}/db_backup_file.sq3 +sqlite3 /var/lib/rustdesk-server/db.sqlite3 .dump > ${tmp_dir}/db_backup_file.sql if [[ $* == *--auto* ]]; then