Monitor sistem resources seperti CPU, Memory, dan Disk usage
#!/bin/bash
echo "=== System Monitor ==="
echo "CPU Usage:"
top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1"%"}'
echo "Memory Usage:"
free -m | awk 'NR==2{printf "%.2f%%\n", $3*100/$2 }'
echo "Disk Usage:"
df -h | awk '$NF=="/"{printf "%s\n", $5}'
Scan port yang terbuka pada target host
#!/usr/bin/env python3
import socket
import sys
from datetime import datetime
def scan_port(target, port):
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(1)
result = sock.connect_ex((target, port))
sock.close()
return result == 0
except:
return False
target = input("Enter target host: ")
print(f"Scanning {target}...")
print(f"Time started: {datetime.now()}")
for port in range(1, 1025):
if scan_port(target, port):
print(f"Port {port}: Open")
Analisis log file untuk mencari pattern tertentu
#!/bin/bash
LOG_FILE="/var/log/auth.log"
echo "=== Log Analyzer ==="
echo "Failed login attempts:"
grep "Failed password" $LOG_FILE | wc -l
echo "Successful logins:"
grep "Accepted password" $LOG_FILE | wc -l
echo "Top 10 IP addresses with failed attempts:"
grep "Failed password" $LOG_FILE | grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}" | sort | uniq -c | sort -nr | head -10
Automated backup script dengan compression
#!/bin/bash
SOURCE_DIR="/home/user/documents"
BACKUP_DIR="/backup"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_NAME="backup_$DATE.tar.gz"
echo "Starting backup..."
tar -czf "$BACKUP_DIR/$BACKUP_NAME" "$SOURCE_DIR"
echo "Backup completed: $BACKUP_NAME"
# Keep only last 7 backups
cd $BACKUP_DIR
ls -t backup_*.tar.gz | tail -n +8 | xargs rm -f
echo "Old backups cleaned up"
Check website availability dan response time
#!/usr/bin/env python3
import requests
import time
from datetime import datetime
def check_website(url):
try:
start_time = time.time()
response = requests.get(url, timeout=10)
end_time = time.time()
response_time = round((end_time - start_time) * 1000, 2)
print(f"URL: {url}")
print(f"Status: {response.status_code}")
print(f"Response Time: {response_time}ms")
print(f"Checked at: {datetime.now()}")
return response.status_code == 200
except Exception as e:
print(f"Error checking {url}: {str(e)}")
return False
websites = [
"https://google.com",
"https://github.com",
"https://stackoverflow.com"
]
for site in websites:
check_website(site)
print("-" * 40)