diff --git a/backup.sh b/backup.sh deleted file mode 100644 index 58330fc..0000000 --- a/backup.sh +++ /dev/null @@ -1,157 +0,0 @@ -#!/usr/bin/env bash - -# shellcheck disable=2034,2059,2164 -true - -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 - 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 "${usern}":"${usern}" -R /opt/rustdesk-server-backups - - 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 "${usern}":"${usern}" /opt/rustdesk-server-backups -fi - -dt_now=$(date '+%Y_%m_%d__%H_%M_%S') -tmp_dir=$(mktemp -d -t rustdesk-XXXXXXXXXXXXXXXXXXXXX) -sysd="/etc/systemd/system" - -cp -rf /var/lib/rustdesk-server/ "${tmp_dir}"/ -sqlite3 /var/lib/rustdesk-server/db.sqlite3 .dump > "${tmp_dir}"/db_backup_file.sql - -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 "Backup Completed" - exit - -else - tar -cf /opt/rustdesk-server-backups/rustdesk-backup-"${dt_now}".tar -C "${tmp_dir}" . - rm -rf "${tmp_dir}" - echo -ne "Backup saved to /opt/rustdesk-server-backups/rustdesk-backup-${dt_now}.tar" -fi