Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added backups/backup_2026-04-02_03-07-26.tar.gz
Binary file not shown.
Binary file added backups/backup_2026-04-02_03-25-34.tar.gz
Binary file not shown.
Binary file added backups/backup_2026-04-02_03-28-05.tar.gz
Binary file not shown.
4 changes: 4 additions & 0 deletions logs/app.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
2026-04-02 03:22:45 - Running all scripts
2026-04-02 03:26:17 - system check completed
2026-04-02 03:28:05 - backup completed
2026-04-02 03:28:43 - Exiting
3 changes: 3 additions & 0 deletions logs/backup.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Backup created: backups/backup_2026-04-02_03-07-26.tar.gz
Backup created: backups/backup_2026-04-02_03-25-34.tar.gz
Backup created: backups/backup_2026-04-02_03-28-05.tar.gz
4 changes: 4 additions & 0 deletions logs/file_manager.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
2026-04-02 02:55:40 - CREATED - test.txt
2026-04-02 02:56:12 - LISTED files
2026-04-02 02:58:31 - RENAMED - test.txt to new.txt
2026-04-02 03:01:20 - DELETED - new.txt
2 changes: 2 additions & 0 deletions logs/process_monitor.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
2026-04-02 03:16:38 - nginx is Stopped. Restarting...
2026-04-02 03:16:38 - nginx Restarted
41 changes: 41 additions & 0 deletions logs/system_report_2026-04-02_03-10-17.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
===== SYSTEM CHECK REPORT =====
Date: Thu Apr 2 03:10:17 CDT 2026

---- Disk Usage ----
Filesystem Size Used Avail Use% Mounted on
none 1.9G 0 1.9G 0% /usr/lib/modules/6.6.87.2-microsoft-standard-WSL2
none 1.9G 4.0K 1.9G 1% /mnt/wsl
drivers 238G 87G 151G 37% /usr/lib/wsl/drivers
/dev/sdd 1007G 1.3G 955G 1% /
none 1.9G 84K 1.9G 1% /mnt/wslg
none 1.9G 0 1.9G 0% /usr/lib/wsl/lib
rootfs 1.9G 2.7M 1.9G 1% /init
none 1.9G 504K 1.9G 1% /run
none 1.9G 0 1.9G 0% /run/lock
none 1.9G 0 1.9G 0% /run/shm
none 1.9G 76K 1.9G 1% /mnt/wslg/versions.txt
none 1.9G 76K 1.9G 1% /mnt/wslg/doc
C:\ 238G 87G 151G 37% /mnt/c
tmpfs 382M 20K 382M 1% /run/user/1000

---- Memory Usage ----
total used free shared buff/cache available
Mem: 3818 477 3311 3 166 3340
Swap: 1024 0 1024

---- CPU Load ----
03:10:18 up 54 min, 1 user, load average: 0.04, 0.08, 0.03

---- Disk Warning (>80%) ----

---- Total Processes ----
26

---- Top 5 Memory Processes ----
PID COMMAND %MEM
58 systemd-journal 0.6
200 unattended-upgr 0.5
1 systemd 0.3
117 systemd-resolve 0.3
376 systemd 0.2

41 changes: 41 additions & 0 deletions logs/system_report_2026-04-02_03-25-09.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
===== SYSTEM CHECK REPORT =====
Date: Thu Apr 2 03:25:09 CDT 2026

---- Disk Usage ----
Filesystem Size Used Avail Use% Mounted on
none 1.9G 0 1.9G 0% /usr/lib/modules/6.6.87.2-microsoft-standard-WSL2
none 1.9G 4.0K 1.9G 1% /mnt/wsl
drivers 238G 87G 151G 37% /usr/lib/wsl/drivers
/dev/sdd 1007G 1.3G 955G 1% /
none 1.9G 88K 1.9G 1% /mnt/wslg
none 1.9G 0 1.9G 0% /usr/lib/wsl/lib
rootfs 1.9G 2.7M 1.9G 1% /init
none 1.9G 504K 1.9G 1% /run
none 1.9G 0 1.9G 0% /run/lock
none 1.9G 0 1.9G 0% /run/shm
none 1.9G 76K 1.9G 1% /mnt/wslg/versions.txt
none 1.9G 76K 1.9G 1% /mnt/wslg/doc
C:\ 238G 87G 151G 37% /mnt/c
tmpfs 382M 20K 382M 1% /run/user/1000

---- Memory Usage ----
total used free shared buff/cache available
Mem: 3818 485 3298 3 171 3332
Swap: 1024 0 1024

---- CPU Load ----
03:25:09 up 1:08, 1 user, load average: 0.06, 0.07, 0.05

---- Disk Warning (>80%) ----

---- Total Processes ----
27

---- Top 5 Memory Processes ----
PID COMMAND %MEM
58 systemd-journal 0.7
200 unattended-upgr 0.5
1 systemd 0.3
117 systemd-resolve 0.3
376 systemd 0.2

41 changes: 41 additions & 0 deletions logs/system_report_2026-04-02_03-26-17.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
===== SYSTEM CHECK REPORT =====
Date: Thu Apr 2 03:26:17 CDT 2026

---- Disk Usage ----
Filesystem Size Used Avail Use% Mounted on
none 1.9G 0 1.9G 0% /usr/lib/modules/6.6.87.2-microsoft-standard-WSL2
none 1.9G 4.0K 1.9G 1% /mnt/wsl
drivers 238G 87G 151G 37% /usr/lib/wsl/drivers
/dev/sdd 1007G 1.3G 955G 1% /
none 1.9G 88K 1.9G 1% /mnt/wslg
none 1.9G 0 1.9G 0% /usr/lib/wsl/lib
rootfs 1.9G 2.7M 1.9G 1% /init
none 1.9G 504K 1.9G 1% /run
none 1.9G 0 1.9G 0% /run/lock
none 1.9G 0 1.9G 0% /run/shm
none 1.9G 76K 1.9G 1% /mnt/wslg/versions.txt
none 1.9G 76K 1.9G 1% /mnt/wslg/doc
C:\ 238G 87G 151G 37% /mnt/c
tmpfs 382M 20K 382M 1% /run/user/1000

---- Memory Usage ----
total used free shared buff/cache available
Mem: 3818 482 3301 3 171 3336
Swap: 1024 0 1024

---- CPU Load ----
03:26:17 up 1:10, 1 user, load average: 0.02, 0.05, 0.05

---- Disk Warning (>80%) ----

---- Total Processes ----
27

---- Top 5 Memory Processes ----
PID COMMAND %MEM
58 systemd-journal 0.7
200 unattended-upgr 0.5
1 systemd 0.3
117 systemd-resolve 0.3
376 systemd 0.2

2 changes: 2 additions & 0 deletions logs/user_info.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
2026-04-02 02:49:25 - Hello Sunday from Nigeria. You are 32 years old (Adult).
2026-04-02 03:25:09 - Hello Sunday from Nigeria. You are 32 years old (Adult).
48 changes: 48 additions & 0 deletions run_all.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#!/usr/bin/env bash
set -euo pipefail

mkdir -p logs
LOG_FILE="logs/app.log"

log() {
echo "$(date '+%F %T') - $1" | tee -a "$LOG_FILE"
}

run_all() {
log "Running all scripts"

./scripts/user_info.sh || log "user_info failed"
./scripts/system_check.sh || log "system_check failed"

read -rp "Enter directory to backup: " dir
./scripts/backup.sh "$dir" || log "backup failed"
}

run_system_check() {
./scripts/system_check.sh && log "system check completed"
}

run_backup() {
read -rp "Enter directory to backup: " dir
./scripts/backup.sh "$dir" && log "backup completed"
}

while true; do
echo
echo "===== MENU ====="
echo "1. Run All"
echo "2. System Check"
echo "3. Backup"
echo "4. Exit"
echo

read -rp "Choose an option: " choice

case "$choice" in
1) run_all ;;
2) run_system_check ;;
3) run_backup ;;
4) log "Exiting"; exit 0 ;;
*) echo "Invalid option" ;;
esac
done
32 changes: 32 additions & 0 deletions scripts/backup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/usr/bin/env bash
set -euo pipefail

mkdir -p logs backups
LOG_FILE="logs/backup.log"

target_dir="${1:-}"

# Validate input
if [[ -z "$target_dir" ]]; then
echo "Usage: $0 <directory>"
exit 1
fi

if [[ ! -d "$target_dir" ]]; then
echo "Error: Directory does not exist." | tee -a "$LOG_FILE"
exit 1
fi

# Create backup
timestamp=$(date '+%F_%H-%M-%S')
backup_file="backups/backup_${timestamp}.tar.gz"

tar -czf "$backup_file" "$target_dir"

echo "Backup created: $backup_file" | tee -a "$LOG_FILE"

# Keep only last 5 backups
ls -1t backups/backup_*.tar.gz 2>/dev/null | tail -n +6 | while read -r old; do
rm -f "$old"
echo "Deleted old backup: $old" >> "$LOG_FILE"
done
87 changes: 87 additions & 0 deletions scripts/file_manager.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
#!/usr/bin/env bash
set -euo pipefail

mkdir -p logs
LOG_FILE="logs/file_manager.log"

action="${1:-}"

log() {
echo "$(date '+%F %T') - $1" >> "$LOG_FILE"
}

case "$action" in
create)
filename="${2:-}"

if [[ -z "$filename" ]]; then
echo "Usage: $0 create <filename>"
exit 1
fi

if [[ -e "$filename" ]]; then
echo "Error: File already exists."
log "CREATE FAILED - $filename exists"
exit 1
fi

touch "$filename"
echo "Created $filename"
log "CREATED - $filename"
;;

delete)
filename="${2:-}"

if [[ -z "$filename" ]]; then
echo "Usage: $0 delete <filename>"
exit 1
fi

if [[ ! -e "$filename" ]]; then
echo "Error: File does not exist."
log "DELETE FAILED - $filename not found"
exit 1
fi

rm -f "$filename"
echo "Deleted $filename"
log "DELETED - $filename"
;;

list)
ls -lah
log "LISTED files"
;;

rename)
oldname="${2:-}"
newname="${3:-}"

if [[ -z "$oldname" || -z "$newname" ]]; then
echo "Usage: $0 rename <old> <new>"
exit 1
fi

if [[ ! -e "$oldname" ]]; then
echo "Error: File not found."
log "RENAME FAILED - $oldname not found"
exit 1
fi

if [[ -e "$newname" ]]; then
echo "Error: Target file already exists."
log "RENAME FAILED - $newname exists"
exit 1
fi

mv "$oldname" "$newname"
echo "Renamed $oldname to $newname"
log "RENAMED - $oldname to $newname"
;;

*)
echo "Usage: $0 {create|delete|list|rename}"
exit 1
;;
esac
51 changes: 51 additions & 0 deletions scripts/process_monitor.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
#!/usr/bin/env bash
set -euo pipefail

mkdir -p logs
LOG_FILE="logs/process_monitor.log"

services=("nginx" "ssh" "docker")

process_name="${1:-}"

if [[ -z "$process_name" ]]; then
echo "Usage: $0 <process_name>"
exit 1
fi

# Check if process is in allowed list
found=false
for service in "${services[@]}"; do
if [[ "$service" == "$process_name" ]]; then
found=true
break
fi
done

if [[ "$found" == false ]]; then
msg="Process '$process_name' is not monitored."
echo "$msg"
echo "$(date '+%F %T') - $msg" >> "$LOG_FILE"
exit 1
fi

# Check if running
if pgrep -x "$process_name" > /dev/null 2>&1; then
msg="$process_name is Running"
else
msg="$process_name is Stopped. Restarting..."
echo "$msg"

# Simulate restart (safe for assignment)
sleep 1

msg2="$process_name Restarted"
echo "$msg2"

echo "$(date '+%F %T') - $msg" >> "$LOG_FILE"
echo "$(date '+%F %T') - $msg2" >> "$LOG_FILE"
exit 0
fi

echo "$msg"
echo "$(date '+%F %T') - $msg" >> "$LOG_FILE"
Loading