diff --git a/backup.sh b/backup.sh new file mode 100644 index 0000000..2caad89 --- /dev/null +++ b/backup.sh @@ -0,0 +1,117 @@ +#!/bin/bash + +# Interactive backup script written by Skylar Grant +# +# GitHub: https://github.com/voidf1sh/backup-script +# File: backup.sh +# Version: 0.0.1 +# Date: 2021.09.21 +#################################################### + +#################################################### +# Formatting Tips: +# (Tips found at : https://misc.flogisoft.com/bash/tip_colors_and_formatting) +# +# Formatting: +# \e[1m - Bold +# \e[2m - Dim +# \e[8m - Hidden (passwords) +# +# Reset: +# \e[0m - Reset All Attributes +# \e[21m - Reset Bold/Bright +# \e[22m - Reset Dim +# \e[28m - Reset Hidden +# +# Colors: +# \e[39m - Default Foreground Color +# \e[30m - Black +# \e[31m - Red +# \e[32m - Green +# \e[34m - Blue +#################################################### + +# Some initial variables to work with +# Note: this isn't ideal, this is going to name the +# backup according to the time the script is launched +# not according to the time the actual backup was initiated +backupdir="$(pwd)/backups" +timestamp=$(date "+%Y%m%d_%H%M") +filename="backup_$timestamp.tar.gz" + +# Initial Prompt +# Bash allows for linebreaks in string literals and will +# break lines accordingly in the shell +echo -e " + \e[1m\e[32m[ Skylar's Backup Script ]\e[0m + + \e[32mThis script is being run from: \e[0m'$(pwd)' + \e[32mBackup Filename: \e[0m'$filename' + \e[32mCurrent Backup Location: \e[0m'$backupdir' + \e[32mDirectories to Backup: \e[0m'/var/www', '$HOME' + + \e[34mPlease enter an option from below:\e[0m + + \e[34m[1] \e[0mCreate a new backup. + \e[34m[2] \e[0mList saved backups. + \e[34m[3] \e[0mCheck /tmp for any rogue backups. + \e[34m[4] \e[0mChange backup directory. + \e[34m[5] \e[0mGenerate a reusable backup script using these settings. + + \e[34m[0] \e[31mExit\e[0m +" + +if ! test -d "$backupdir"; then + echo -e "\e[31mError: The backup directory does not exist. +\e[0mWould you like to create it? [y/n]" + read -p "[y/n]: " yesno + + case "$yesno" in + "y") + mkdir -p "$backupdir" + ;; + "n") + ;; + esac +fi + +# Wait for input +read -p " Option: " opt + +# Execute the correct commands based on input. +case "$opt" in + 1) + # Create new backup + clear + tar -czf "/tmp/$filename" /var/www $HOME + mv "$filename" "$backupdir" + ;; + 2) + # List saved backups + clear + ls -al "$backupdir" | grep "backup" + ;; + 3) + # Check /tmp for any rogue backups. + clear + ls -al /tmp | grep backup + ;; + 4) + # Change backup directory + read -p " New directory: " newdir + backupdir=$newdir + ;; + 0) + # Exit the script + echo "!! Quitting !!" + sleep 0.4s + clear + exit + ;; + *) + clear + echo "!! Invalid Option !!" + ;; +esac + +exec ./backup.sh diff --git a/backups/backup_20210921_2110.tar.gz b/backups/backup_20210921_2110.tar.gz new file mode 100644 index 0000000..2765750 Binary files /dev/null and b/backups/backup_20210921_2110.tar.gz differ diff --git a/botcp.sh b/botcp.sh new file mode 100644 index 0000000..a7efd57 --- /dev/null +++ b/botcp.sh @@ -0,0 +1,69 @@ +#!/bin/bash + +# UI/Prompt +echo -e " + \e[0mDiscord Bot Control Panel\e[32m + Options: + \e[35m[1] \e[32mStart all bots. + \e[35m[2] \e[32mStop all bots. + \e[35m[3] \e[32mBot 1 Log + \e[35m[4] \e[32mBot 2 Log + \e[35m[5] \e[32mBot 3 Log + \e[35m[6] \e[32mBot 4 Log + + \e[35m[0] \e[31mExit \e[32m + +Bot 1 PID: \e[0m`pgrep -f "[n]ode /home/ubuntu/bot1/bot.js"` +Bot 2 PID: \e[0m`pgrep -f "[n]ode /home/ubuntu/bot2/bot.js"` +Bot 3 PID: \e[0m`pgrep -f "[n]ode /home/ubuntu/bot3/bot.js"` +Bot 4 PID: \e[0m`pgrep -f "[n]ode /home/ubuntu/bot4/bot.js"`" + +# Bot PIDs +bbotPID=`pgrep -f "[n]ode /home/ubuntu/bot1/bot.js"` +vbotPID=`pgrep -f "[n]ode /home/ubuntu/bot2/bot.js"` +sbotPID=`pgrep -f "[n]ode /home/ubuntu/bot3/bot.js"` +abotPID=`pgrep -f "[n]ode /home/ubuntu/bot4/bot.js"` + +# Wait for input +read -p " Option: " opt + +# Execute commands based on input. +case "$opt" in + 1) + echo " Starting all bots..." + node /home/ubuntu/bot1/bot.js &>> /home/ubuntu/logs/bot1.log & + node /home/ubuntu/bot2/bot.js &>> /home/ubuntu/logs/bot2.log & + node /home/ubuntu/bot3/bot.js &>> /home/ubuntu/logs/bot3.log & + node /home/ubuntu/bot4/bot.js &>> /home/ubuntu/logs/bot4.log & + sleep 0.4s + clear + ;; + 2) + echo " Stopping all bots..." + kill -9 $bbotPID + kill -9 $vbotPID + kill -9 $sbotPID + kill -9 $abotPID + sleep 0.4s + clear + ;; + 3) + ;; + 4) + ;; + 5) + ;; + 6) + ;; + 0) + echo " Quitting this script..." + sleep 0.4s + clear + exit + ;; + *) + clear + ;; +esac + +exec ./botcp \ No newline at end of file