diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..1012552 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "bleachbit"] + path = bleachbit + url = https://github.com/bleachbit/bleachbit diff --git a/README.md b/README.md index 14bdfc4..6b9ee31 100644 --- a/README.md +++ b/README.md @@ -4,10 +4,10 @@ These commands are used for managing StarOpenSource infrastructure # Installing Execute this as root: ``` -mkdir -p /opt/soscmd -cd /opt/soscmd +mkdir -p /data/opt/soscmd +cd /data/opt/soscmd git clone https://git.staropensource.de/staropensource-infrastructure/soscmd.git . -echo "export \"PATH=$PATH:/opt/soscmd\"" >> /etc/bash.bashrc +echo "export \"PATH=$PATH:/data/opt/soscmd\"" >> /etc/bash.bashrc ``` # License diff --git a/bleachbit b/bleachbit new file mode 160000 index 0000000..ae1605f --- /dev/null +++ b/bleachbit @@ -0,0 +1 @@ +Subproject commit ae1605f48c5b9a78f77a075bd1b1bb96768338ed diff --git a/soscmd-bleachbit b/soscmd-bleachbit index d03dfde..a8bd8dc 100755 --- a/soscmd-bleachbit +++ b/soscmd-bleachbit @@ -1,4 +1,4 @@ #!/bin/bash echo ":: Running bleachbit (unattended cleanup)" -cd /opt/bleachbit/ +cd /data/opt/soscmd/bleachbit python bleachbit.py x11.debug_logs vim.history system.trash system.rotated_logs system.recent_documents system.cache sqlite3.history midnightcommander.history journald.clean java.cache gl-117.debug_logs deepscan.ds_store deepscan.thumbs_db bash.history --clean diff --git a/soscmd-cache-dotcache b/soscmd-cache-dotcache index 3e822a4..8f66579 100755 --- a/soscmd-cache-dotcache +++ b/soscmd-cache-dotcache @@ -1,4 +1,4 @@ #!/bin/bash rm -rf /root/.cache -rm -rf /home/{aur,firefish,mastodon}/.cache +rm -rf /home/{aur,firefish}/.cache echo ":: Purged all \".cache\" directories." diff --git a/soscmd-cleanup b/soscmd-cleanup index c242b9a..cfe79be 100755 --- a/soscmd-cleanup +++ b/soscmd-cleanup @@ -1,7 +1,7 @@ #!/bin/bash echo ":: Cleaning up..." -export "diskusage_precleanup=$(df -h /data)" -export "diskusage_precleanup_bytes=$(df /data)" +export "diskusage_precleanup=$(df -h /;echo "==========";df -h /data)" +export "diskusage_precleanup_bytes=$(df /;echo "==========";df -h /data)" soscmd-prune soscmd-cache soscmd-bleachbit diff --git a/soscmd-prune-docker b/soscmd-prune-docker index f5ac1c1..a723b4a 100755 --- a/soscmd-prune-docker +++ b/soscmd-prune-docker @@ -1,5 +1,5 @@ #!/bin/bash echo ":: Pruning docker system" yes|docker system prune -a -echo ":: Recreating traccar:custom" -/opt/traccar-docker/build.sh +echo ":: Recreating missing stuff" +docker network create pterodactyl_nw diff --git a/soscmd-services b/soscmd-services deleted file mode 100755 index 938998a..0000000 --- a/soscmd-services +++ /dev/null @@ -1,112 +0,0 @@ -#!/bin/bash -# shellcheck disable=SC2009 disable=SC2086 -export "VERBOSE=true" -export "LINEREP=\033[F" -export "LINESPACE= " -export "COLOR_RED=\e[0;31m" -export "COLOR_GREEN=\e[0;32m" -export "COLOR_YELLOW=\e[0;33m" -export "COLOR_BLUE=\e[0;34m" -export "COLOR_PURPLE=\e[0;35m" -export "COLOR_CYAN=\e[0;36m" -export "COLOR_RESET=\e[0m" -function ntb(){ - case "$1" in - "1") echo "true" ;; - "2") echo "false" ;; - *) echo "error in conversion ($1)" ;; - esac -} -function isonline(){ - case "$1" in - "0") echo "${COLOR_GREEN}online${COLOR_RESET} " ;; - "1") echo "${COLOR_RED}offline${COLOR_RESET}" ;; - *) echo "error in conversion ($1)" ;; - esac -} - -echo -e "${COLOR_CYAN}Server statistics report" -echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services${LINESPACE}" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: Mastodon (Puma)${LINESPACE}"; fi -export "SERVICES_MASTODON_PUMA=$(ps -eo args|grep puma|grep "\\[live\\]"&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: Mastodon (Streaming)${LINESPACE}"; fi -export "SERVICES_MASTODON_STREAMING=$(ps -eo args|grep node|grep streaming&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: Mastodon (Sidekiq)${LINESPACE}"; fi -export "SERVICES_MASTODON_SIDEKIQ=$(ps -eo args|grep sidekiq|grep ' live '&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: httpd${LINESPACE}"; fi -export "SERVICES_HTTPD=$(ps -eo args|grep httpd|grep ' -k '&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: Docker${LINESPACE}"; fi -export "SERVICES_DOCKER=$(ps -eo args|grep dockerd|grep '\--containerd'&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: MariaDB${LINESPACE}"; fi -export "SERVICES_MARIADB=$(ps -eo args|grep '/usr/bin'|grep mariadbd&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: PHP 8.2 FPM${LINESPACE}"; fi -export "SERVICES_PHP82=$(ps -eo args|grep php-fpm|grep php82&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: PHP 8.1 FPM${LINESPACE}"; fi -export "SERVICES_PHP81=$(ps -eo args|grep php-fpm|grep php81&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: PHP 7.4 FPM${LINESPACE}"; fi -export "SERVICES_PHP74=$(ps -eo args|grep php-fpm|grep php74&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: fail2ban${LINESPACE}"; fi -export "SERVICES_FAIL2BAN=$(ps -eo args|grep fail2ban-server|grep python3&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: Forgejo${LINESPACE}"; fi -export "SERVICES_FORGEJO=$(ps -eo args|grep forgejo|grep 'web -c'&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: Traccar${LINESPACE}"; fi -export "SERVICES_TRACCAR=$(ps -eo args|grep traccar|grep java&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: SOSSchedule${LINESPACE}"; fi -export "SERVICES_SOSSCHEDULE=$(ps -eo args|grep sosschedule|grep bash&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: Pterodactyl Daemon (Wings)${LINESPACE}"; fi -export "SERVICES_WINGS=$(ps -eo args|grep wings|grep '/usr/local/bin'&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: pteroq${LINESPACE}"; fi -export "SERVICES_PTEROQ=$(ps -eo args|grep 'artisan queue:work'|grep php&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: Uptime Kuma{LINESPACE}"; fi -export "SERVICES_UPTIMEKUMA=$(docker ps|grep uptime-kuma&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: Adminer${LINESPACE}"; fi -export "SERVICES_ADMINER=$(docker ps|grep adminer&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: PostgreSQL${LINESPACE}"; fi -export "SERVICES_POSTGRES=$(docker ps|grep postgres&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: Mail server${LINESPACE}"; fi -export "SERVICES_MAILSERVER=$(docker ps|grep mailserver&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: Cronie${LINESPACE}"; fi -export "SERVICES_CRONIE=$(ps -eo args|grep cronie&>/dev/null;echo $?)" -echo -e "${LINEREP}${COLOR_PURPLE}:: Processing data${LINESPACE}" -export "SERVICES_MASTODON_PUMA=$(isonline $SERVICES_MASTODON_PUMA)" -export "SERVICES_MASTODON_STREAMING=$(isonline $SERVICES_MASTODON_STREAMING)" -export "SERVICES_MASTODON_SIDEKIQ=$(isonline $SERVICES_MASTODON_SIDEKIQ)" -export "SERVICES_HTTPD=$(isonline $SERVICES_HTTPD)" -export "SERVICES_DOCKER=$(isonline $SERVICES_DOCKER)" -export "SERVICES_MARIADB=$(isonline $SERVICES_MARIADB)" -export "SERVICES_PHP82=$(isonline $SERVICES_PHP82)" -export "SERVICES_PHP81=$(isonline $SERVICES_PHP81)" -export "SERVICES_PHP74=$(isonline $SERVICES_PHP74)" -export "SERVICES_FAIL2BAN=$(isonline $SERVICES_FAIL2BAN)" -export "SERVICES_FORGEJO=$(isonline $SERVICES_FORGEJO)" -export "SERVICES_TRACCAR=$(isonline $SERVICES_TRACCAR)" -export "SERVICES_SOSSCHEDULE=$(isonline $SERVICES_SOSSCHEDULE)" -export "SERVICES_WINGS=$(isonline $SERVICES_WINGS)" -export "SERVICES_PTEROQ=$(isonline $SERVICES_PTEROQ)" -export "SERVICES_UPTIMEKUMA=$(isonline $SERVICES_UPTIMEKUMA)" -export "SERVICES_ADMINER=$(isonline $SERVICES_ADMINER)" -export "SERVICES_POSTGRES=$(isonline $SERVICES_POSTGRES)" -export "SERVICES_MAILSERVER=$(isonline $SERVICES_MAILSERVER)" -export "SERVICES_CRONIE=$(isonline $SERVICES_CRONIE)" -export "GENERATED=$(date '+%T %d.%m.%Y')" -echo -e "${LINEREP}${COLOR_BLUE}Report generated: ${COLOR_YELLOW}$GENERATED" -echo -e "${COLOR_RESET}${COLOR_BLUE}Services:${COLOR_RESET} $SERVICES_DOCKER Docker" -echo -e "${COLOR_RESET} $SERVICES_FAIL2BAN fail2ban" -echo -e "${COLOR_RESET} $SERVICES_SOSSCHEDULE SOSSchedule" -echo -e "${COLOR_RESET} $SERVICES_MARIADB MariaDB" -echo -e "${COLOR_RESET} $SERVICES_POSTGRES PostgreSQL" -echo -e "${COLOR_RESET} $SERVICES_PHP82 PHP 8.2 FPM" -echo -e "${COLOR_RESET} $SERVICES_PHP81 PHP 8.1 FPM" -echo -e "${COLOR_RESET} $SERVICES_PHP74 PHP 7.4 FPM" -echo -e "${COLOR_RESET} $SERVICES_WINGS Pterodactyl Daemon (Wings)" -echo -e "${COLOR_RESET} $SERVICES_PTEROQ pteroq" -echo -e "${COLOR_RESET} $SERVICES_ADMINER Adminer" -echo -e "${COLOR_RESET} $SERVICES_HTTPD httpd" -echo -e "${COLOR_RESET} $SERVICES_MAILSERVER Mail server" -echo -e "${COLOR_RESET} $SERVICES_UPTIMEKUMA Uptime Kuma" -echo -e "${COLOR_RESET} $SERVICES_FORGEJO Forgejo" -echo -e "${COLOR_RESET} $SERVICES_MASTODON_PUMA Mastodon (Puma)" -echo -e "${COLOR_RESET} $SERVICES_MASTODON_STREAMING Mastodon (Streaming)" -echo -e "${COLOR_RESET} $SERVICES_MASTODON_SIDEKIQ Mastodon (Sidekiq)" -echo -e "${COLOR_RESET} $SERVICES_TRACCAR Traccar" -echo -e "${COLOR_RESET} $SERVICES_CRONIE Cronie" diff --git a/soscmd-stats b/soscmd-stats deleted file mode 100755 index a17dcd0..0000000 --- a/soscmd-stats +++ /dev/null @@ -1,154 +0,0 @@ -#!/bin/bash -# shellcheck disable=SC2009 disable=SC2086 -export "VERBOSE=true" -export "LINEREP=\033[F" -export "LINESPACE= " -export "COLOR_RED=\e[0;31m" -export "COLOR_GREEN=\e[0;32m" -export "COLOR_YELLOW=\e[0;33m" -export "COLOR_BLUE=\e[0;34m" -export "COLOR_PURPLE=\e[0;35m" -export "COLOR_CYAN=\e[0;36m" -export "COLOR_RESET=\e[0m" -function ntb(){ - case "$1" in - "1") echo "true" ;; - "2") echo "false" ;; - *) echo "error in conversion ($1)" ;; - esac -} -function isonline(){ - case "$1" in - "0") echo "${COLOR_GREEN}online${COLOR_RESET} " ;; - "1") echo "${COLOR_RED}offline${COLOR_RESET}" ;; - *) echo "error in conversion ($1)" ;; - esac -} - -echo -e "${COLOR_CYAN}Server statistics report" -echo -e "${COLOR_PURPLE}:: Computing memory usage${LINESPACE}" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing memory usage: TOTAL${LINESPACE}"; fi -export "MEM_TOTAL=$(free -m|awk '/^Speicher:/{print $2}')" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing memory usage: USED${LINESPACE}"; fi -export "MEM_USED=$(free -m|awk '/^Speicher:/{print $3}')" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing memory usage: FREE${LINESPACE}"; fi -export "MEM_FREE=$(free -m|awk '/^Speicher:/{print $4}')" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing memory usage: AVAILABLE${LINESPACE}"; fi -export "MEM_AVAILABLE=$(free -m|awk '/^Speicher:/{print $7}')" -echo -e "${LINEREP}${COLOR_PURPLE}:: Computing swap usage${LINESPACE}" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing swap usage: TOTAL${LINESPACE}"; fi -export "SWAP_TOTAL=$(free -m|awk '/^Swap:/{print $2}')" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing swap usage: USED${LINESPACE}"; fi -export "SWAP_USED=$(free -m|awk '/^Swap:/{print $3}')" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing swap usage: FREE${LINESPACE}"; fi -export "SWAP_FREE=$(free -m|awk '/^Swap:/{print $4}')" -echo -e "${LINEREP}${COLOR_PURPLE}:: Computing processor usage${LINESPACE}" -export "CPU_USAGE=$(vmstat 1 2 | awk 'END { print 100 - $15 }')" -echo -e "${LINEREP}${COLOR_PURPLE}:: Computing disk usage${LINESPACE}" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing disk usage: PERCENT${LINESPACE}"; fi -export "DISK_PERCENT=$(df -h|grep '/dev/mapper/cryptlvm'|head -1|awk '{printf $5}')" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing disk usage: FREE${LINESPACE}"; fi -export "DISK_FREE=$(df -h|grep '/dev/mapper/cryptlvm'|head -1|awk '{printf $4}')" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing disk usage: USED${LINESPACE}"; fi -export "DISK_USED=$(df -h|grep '/dev/mapper/cryptlvm'|head -1|awk '{printf $3}')" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing disk usage: TOTAL${LINESPACE}"; fi -export "DISK_TOTAL=$(df -h|grep '/dev/mapper/cryptlvm'|head -1|awk '{printf $2}')" -echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services${LINESPACE}" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: Mastodon (Puma)${LINESPACE}"; fi -export "SERVICES_MASTODON_PUMA=$(ps -eo args|grep puma|grep "\\[live\\]"&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: Mastodon (Streaming)${LINESPACE}"; fi -export "SERVICES_MASTODON_STREAMING=$(ps -eo args|grep node|grep streaming&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: Mastodon (Sidekiq)${LINESPACE}"; fi -export "SERVICES_MASTODON_SIDEKIQ=$(ps -eo args|grep sidekiq|grep ' live '&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: httpd${LINESPACE}"; fi -export "SERVICES_HTTPD=$(ps -eo args|grep httpd|grep ' -k '&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: Docker${LINESPACE}"; fi -export "SERVICES_DOCKER=$(ps -eo args|grep dockerd|grep '\--containerd'&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: MariaDB${LINESPACE}"; fi -export "SERVICES_MARIADB=$(ps -eo args|grep '/usr/bin'|grep mariadbd&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: PHP 8.2 FPM${LINESPACE}"; fi -export "SERVICES_PHP82=$(ps -eo args|grep php-fpm|grep php82&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: PHP 8.1 FPM${LINESPACE}"; fi -export "SERVICES_PHP81=$(ps -eo args|grep php-fpm|grep php81&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: PHP 7.4 FPM${LINESPACE}"; fi -export "SERVICES_PHP74=$(ps -eo args|grep php-fpm|grep php74&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: fail2ban${LINESPACE}"; fi -export "SERVICES_FAIL2BAN=$(ps -eo args|grep fail2ban-server|grep python3&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: Forgejo${LINESPACE}"; fi -export "SERVICES_FORGEJO=$(ps -eo args|grep forgejo|grep 'web -c'&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: Traccar${LINESPACE}"; fi -export "SERVICES_TRACCAR=$(ps -eo args|grep traccar|grep java&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: SOSSchedule${LINESPACE}"; fi -export "SERVICES_SOSSCHEDULE=$(ps -eo args|grep sosschedule|grep bash&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: Pterodactyl Daemon (Wings)${LINESPACE}"; fi -export "SERVICES_WINGS=$(ps -eo args|grep wings|grep '/usr/local/bin'&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: pteroq${LINESPACE}"; fi -export "SERVICES_PTEROQ=$(ps -eo args|grep 'artisan queue:work'|grep php&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: Uptime Kuma{LINESPACE}"; fi -export "SERVICES_UPTIMEKUMA=$(ps -eo args|grep 'node'|grep '/opt/uptimekuma/server/server.js'&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: Adminer${LINESPACE}"; fi -export "SERVICES_ADMINER=$(docker ps|grep adminer&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: PostgreSQL${LINESPACE}"; fi -export "SERVICES_POSTGRES=$(docker ps|grep postgres&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: Mail server${LINESPACE}"; fi -export "SERVICES_MAILSERVER=$(docker ps|grep mailserver&>/dev/null;echo $?)" -if [ "$VERBOSE" ]; then echo -e "${LINEREP}${COLOR_PURPLE}:: Computing running services: Cronie${LINESPACE}"; fi -export "SERVICES_CRONIE=$(ps -eo args|grep cronie&>/dev/null;echo $?)" -echo -e "${LINEREP}${COLOR_PURPLE}:: Processing data${LINESPACE}" -export "SERVICES_MASTODON_PUMA=$(isonline $SERVICES_MASTODON_PUMA)" -export "SERVICES_MASTODON_STREAMING=$(isonline $SERVICES_MASTODON_STREAMING)" -export "SERVICES_MASTODON_SIDEKIQ=$(isonline $SERVICES_MASTODON_SIDEKIQ)" -export "SERVICES_HTTPD=$(isonline $SERVICES_HTTPD)" -export "SERVICES_DOCKER=$(isonline $SERVICES_DOCKER)" -export "SERVICES_MARIADB=$(isonline $SERVICES_MARIADB)" -export "SERVICES_PHP82=$(isonline $SERVICES_PHP82)" -export "SERVICES_PHP81=$(isonline $SERVICES_PHP81)" -export "SERVICES_PHP74=$(isonline $SERVICES_PHP74)" -export "SERVICES_FAIL2BAN=$(isonline $SERVICES_FAIL2BAN)" -export "SERVICES_FORGEJO=$(isonline $SERVICES_FORGEJO)" -export "SERVICES_TRACCAR=$(isonline $SERVICES_TRACCAR)" -export "SERVICES_SOSSCHEDULE=$(isonline $SERVICES_SOSSCHEDULE)" -export "SERVICES_WINGS=$(isonline $SERVICES_WINGS)" -export "SERVICES_PTEROQ=$(isonline $SERVICES_PTEROQ)" -export "SERVICES_UPTIMEKUMA=$(isonline $SERVICES_UPTIMEKUMA)" -export "SERVICES_ADMINER=$(isonline $SERVICES_ADMINER)" -export "SERVICES_POSTGRES=$(isonline $SERVICES_POSTGRES)" -export "SERVICES_MAILSERVER=$(isonline $SERVICES_MAILSERVER)" -export "SERVICES_CRONIE=$(isonline $SERVICES_CRONIE)" -export "GENERATED=$(date '+%T %d.%m.%Y')" -echo -e "${LINEREP}${COLOR_BLUE}Report generated: ${COLOR_YELLOW}$GENERATED" -echo -e "${COLOR_RESET}${COLOR_BLUE}Memory:${COLOR_RESET} Total ${COLOR_YELLOW}${MEM_TOTAL}MiB" -echo -e "${COLOR_RESET} Used ${COLOR_YELLOW}${MEM_USED}MiB" -echo -e "${COLOR_RESET} Available ${COLOR_YELLOW}${MEM_AVAILABLE}MiB" -echo -e "${COLOR_RESET} Free ${COLOR_YELLOW}${MEM_FREE}MiB" -echo -e "${COLOR_RESET}${COLOR_BLUE}Swap:${COLOR_RESET} Total ${COLOR_YELLOW}${SWAP_TOTAL}MiB" -echo -e "${COLOR_RESET} Used ${COLOR_YELLOW}${SWAP_USED}MiB" -echo -e "${COLOR_RESET} Free ${COLOR_YELLOW}${SWAP_FREE}MiB" -echo -e "${COLOR_RESET}${COLOR_BLUE}CPU:${COLOR_RESET} Usage ${COLOR_YELLOW}${CPU_USAGE}%" -echo -e "${COLOR_RESET}${COLOR_BLUE}Disk:${COLOR_RESET} any% ${COLOR_YELLOW}$DISK_PERCENT" -echo -e "${COLOR_RESET} Total ${COLOR_YELLOW}${DISK_TOTAL}iB" -echo -e "${COLOR_RESET} Used ${COLOR_YELLOW}${DISK_USED}iB" -echo -e "${COLOR_RESET} Free ${COLOR_YELLOW}${DISK_FREE}iB" -echo -e "${COLOR_RESET}${COLOR_BLUE}Services:${COLOR_RESET} $SERVICES_DOCKER Docker" -echo -e "${COLOR_RESET} $SERVICES_FAIL2BAN fail2ban" -echo -e "${COLOR_RESET} $SERVICES_SOSSCHEDULE SOSSchedule" -echo -e "${COLOR_RESET} $SERVICES_MARIADB MariaDB" -echo -e "${COLOR_RESET} $SERVICES_POSTGRES PostgreSQL" -echo -e "${COLOR_RESET} $SERVICES_PHP82 PHP 8.2 FPM" -echo -e "${COLOR_RESET} $SERVICES_PHP81 PHP 8.1 FPM" -echo -e "${COLOR_RESET} $SERVICES_PHP74 PHP 7.4 FPM" -echo -e "${COLOR_RESET} $SERVICES_WINGS Pterodactyl Daemon (Wings)" -echo -e "${COLOR_RESET} $SERVICES_PTEROQ pteroq" -echo -e "${COLOR_RESET} $SERVICES_ADMINER Adminer" -echo -e "${COLOR_RESET} $SERVICES_HTTPD httpd" -echo -e "${COLOR_RESET} $SERVICES_MAILSERVER Mail server" -echo -e "${COLOR_RESET} $SERVICES_UPTIMEKUMA Uptime Kuma" -echo -e "${COLOR_RESET} $SERVICES_FORGEJO Forgejo" -echo -e "${COLOR_RESET} $SERVICES_MASTODON_PUMA Mastodon (Puma)" -echo -e "${COLOR_RESET} $SERVICES_MASTODON_STREAMING Mastodon (Streaming)" -echo -e "${COLOR_RESET} $SERVICES_MASTODON_SIDEKIQ Mastodon (Sidekiq)" -echo -e "${COLOR_RESET} $SERVICES_TRACCAR Traccar" -echo -e "${COLOR_RESET} $SERVICES_CRONIE Cronie" -echo -e "" -echo -e "${COLOR_RESET}${COLOR_BLUE}Tip: Use \"Available\" instead of \"Free\" for available ram. Here's why: https://linuxatemyram.com" -echo -e "${COLOR_RESET}${COLOR_BLUE}Info: The CPU usage might be reported incorrectly (polling rate issue). Use htop for accurate CPU usage.${COLOR_RESET}"