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
1 change: 1 addition & 0 deletions logs/user_info.log
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fri Apr 3 16:20:36 WAT 2026: Hello hammed from Nigeria. You are an Adult.
23 changes: 23 additions & 0 deletions scripts/backup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/bin/bash

LOG_FILE="../logs/backup.log"
BACKUP_DIR="../backups"

input_dir=$1

if [ ! -d "$input_dir" ]; then
echo "Directory does not exist!"
exit 1
fi

timestamp=$(date +%F_%H-%M-%S)
backup_file="$BACKUP_DIR/backup_$timestamp.tar.gz"

tar -czf "$backup_file" "$input_dir"

echo "$(date): Backup created - $backup_file" >> "$LOG_FILE"

# Keep only last 5 backups
ls -t "$BACKUP_DIR" | tail -n +6 | while read file; do
rm "$BACKUP_DIR/$file"
done
36 changes: 36 additions & 0 deletions scripts/file_manager.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#!/bin/bash

LOG_FILE="../logs/file_manager.log"

action=$1
file=$2

case $action in
create)
if [ -f "$file" ]; then
echo "File already exists!"
else
touch "$file"
echo "$(date): Created $file" >> "$LOG_FILE"
fi
;;
delete)
if [ -f "$file" ]; then
rm "$file"
echo "$(date): Deleted $file" >> "$LOG_FILE"
else
echo "File does not exist!"
fi
;;
list)
ls
;;
rename)
new_name=$3
mv "$file" "$new_name"
echo "$(date): Renamed $file to $new_name" >> "$LOG_FILE"
;;
*)
echo "Usage: $0 {create|delete|list|rename} filename"
;;
esac
30 changes: 30 additions & 0 deletions scripts/system_check.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#!/bin/bash

DATE=$(date +%F)
LOG_FILE="../logs/system_report_$DATE.log"

echo "System Report - $DATE" > "$LOG_FILE"

echo "Disk Usage:" | tee -a "$LOG_FILE"
df -h | tee -a "$LOG_FILE"

echo "Memory Usage:" | tee -a "$LOG_FILE"
free -m | tee -a "$LOG_FILE"

echo "CPU Load:" | tee -a "$LOG_FILE"
uptime | tee -a "$LOG_FILE"

# Disk warning
usage=$(df / | awk 'NR==2 {print $5}' | sed 's/%//')

if [ "$usage" -gt 80 ]; then
echo "WARNING: Disk usage is above 80%" | tee -a "$LOG_FILE"
fi

# Process count
echo "Total running processes:" | tee -a "$LOG_FILE"
ps aux | wc -l | tee -a "$LOG_FILE"

# Top 5 memory processes
echo "Top 5 memory-consuming processes:" | tee -a "$LOG_FILE"
ps aux --sort=-%mem | head -6 | tee -a "$LOG_FILE"
36 changes: 36 additions & 0 deletions scripts/user_info.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#!/bin/bash

LOG_FILE="../logs/user_info.log"

# Ask for input
read -p "Enter your name: " name
read -p "Enter your age: " age
read -p "Enter your country: " country

# Validate inputs
if [[ -z "$name" || -z "$age" || -z "$country" ]]; then
echo "Error: All fields are required."
exit 1
fi

if ! [[ "$age" =~ ^[0-9]+$ ]]; then
echo "Error: Age must be a number."
exit 1
fi

# Determine age category
if (( age < 18 )); then
category="Minor"
elif (( age <= 65 )); then
category="Adult"
else
category="Senior"
fi

# Output message
message="Hello $name from $country. You are an $category."

echo "$message"

# Save to log
echo "$(date): $message" >> "$LOG_FILE"