README.md aktualisiert
This commit is contained in:
295
README.md
295
README.md
@@ -1,18 +1,20 @@
|
|||||||
# Change Swap Size
|
# Change Swap Size
|
||||||
|
|
||||||
Ein robustes Bash-Skript zur automatischen Anpassung der Swap-Größe auf Debian-basierten Systemen.
|
Ein robustes Bash-Skript zur automatischen Anpassung der Swap-Größe auf Debian-basierten Systemen mit intelligenter Swap-Erkennung.
|
||||||
|
|
||||||
## 📋 Übersicht
|
## 📋 Übersicht
|
||||||
|
|
||||||
Dieses Skript passt die Größe der `/swapfile` automatisch an die Systemkonfiguration an. Es berechnet die optimale Swap-Größe basierend auf dem installierten RAM und vergrößert die Swap-Datei bei Bedarf sicher und unterbrechungsfrei.
|
Dieses Skript passt die Größe der `/swapfile` automatisch an die Systemkonfiguration an. Es berechnet die optimale Swap-Größe basierend auf dem installierten RAM und legt Swap neu an oder vergrößert ihn bei Bedarf sicher und unterbrechungsfrei.
|
||||||
|
|
||||||
### Hauptmerkmale
|
### Hauptmerkmale
|
||||||
|
|
||||||
|
- ✅ **Intelligente Swap-Erkennung**: Erkennt automatisch ob Swap vorhanden ist
|
||||||
|
- ✅ **Zwei optimierte Workflows**: Direkter Weg ohne Swap, sicherer Weg mit vorhandenem Swap
|
||||||
- ✅ **Automatische Größenberechnung**: RAM + 2GB als Zielgröße
|
- ✅ **Automatische Größenberechnung**: RAM + 2GB als Zielgröße
|
||||||
- ✅ **Unterbrechungsfreier Betrieb**: Temporärer Swap während des Vorgangs
|
- ✅ **Unterbrechungsfreier Betrieb**: Temporärer Swap während der Vergrößerung
|
||||||
- ✅ **Sicherheitsgeprüft**: Speicherplatz-Validierung vor Ausführung
|
- ✅ **Sicherheitsgeprüft**: Speicherplatz-Validierung vor Ausführung
|
||||||
- ✅ **Idempotent**: Kann mehrfach sicher ausgeführt werden
|
- ✅ **Idempotent**: Kann mehrfach sicher ausgeführt werden
|
||||||
- ✅ **Detailliertes Logging**: Klare Fortschrittsanzeige in 6 Schritten
|
- ✅ **Detailliertes Logging**: Klare Fortschrittsanzeige
|
||||||
- ✅ **Fehlerbehandlung**: Automatischer Abbruch bei Problemen
|
- ✅ **Fehlerbehandlung**: Automatischer Abbruch bei Problemen
|
||||||
|
|
||||||
## 🚀 Installation
|
## 🚀 Installation
|
||||||
@@ -25,17 +27,17 @@ git clone https://git.jtl-hosting.de/thomasciesla/change-swap-size.git
|
|||||||
cd change-swap-size
|
cd change-swap-size
|
||||||
|
|
||||||
# Skript ausführbar machen
|
# Skript ausführbar machen
|
||||||
chmod +x resizeswap.py
|
chmod +x swap-setup-improved.sh
|
||||||
|
|
||||||
# Als Root ausführen
|
# Als Root ausführen
|
||||||
sudo ./resizeswap.py
|
sudo ./swap-setup-improved.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
### Systemweite Installation
|
### Systemweite Installation
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Skript nach /usr/local/bin kopieren
|
# Skript nach /usr/local/bin kopieren
|
||||||
sudo cp resizeswap.py /usr/local/bin/resizeswap
|
sudo cp swap-setup-improved.sh /usr/local/bin/resizeswap
|
||||||
sudo chmod +x /usr/local/bin/resizeswap
|
sudo chmod +x /usr/local/bin/resizeswap
|
||||||
|
|
||||||
# Überall im System ausführbar
|
# Überall im System ausführbar
|
||||||
@@ -47,23 +49,52 @@ sudo resizeswap
|
|||||||
### Basis-Aufruf
|
### Basis-Aufruf
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo ./resizeswap.py
|
sudo ./swap-setup-improved.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Das Skript benötigt Root-Rechte und führt folgende Aktionen aus:
|
Das Skript benötigt Root-Rechte und führt folgende Aktionen aus:
|
||||||
|
|
||||||
1. Ermittelt die installierte RAM-Größe
|
1. Ermittelt die installierte RAM-Größe
|
||||||
2. Berechnet Zielgröße (RAM + 2GB)
|
2. Berechnet Zielgröße (RAM + 2GB)
|
||||||
3. Prüft aktuelle Swap-Größe
|
3. **Prüft ob Swap aktiv ist**
|
||||||
4. Vergrößert bei Bedarf die `/swapfile`
|
4. **Wählt optimalen Workflow**:
|
||||||
|
- Kein Swap → Direktes Anlegen
|
||||||
|
- Swap zu klein → Sichere Vergrößerung
|
||||||
|
|
||||||
### Beispielausgabe
|
### Beispielausgabe: Kein Swap vorhanden
|
||||||
|
|
||||||
```
|
```
|
||||||
=== Swap-Anpassung wird gestartet ===
|
=== Swap-Anpassung wird gestartet ===
|
||||||
Erkannter RAM: 16384 MB
|
Erkannter RAM: 16384 MB
|
||||||
Zielgröße für Swap: 18432 MB (RAM + 2048 MB)
|
Zielgröße für Swap: 18432 MB (RAM + 2048 MB)
|
||||||
Aktuelle Swap-Größe: 4096 MB
|
|
||||||
|
=== KEIN SWAP AKTIV - Erstelle neuen Swap ===
|
||||||
|
Verfügbarer Speicher: 50000 MB
|
||||||
|
Benötigt: 18432 MB
|
||||||
|
|
||||||
|
[1/3] Erstelle /swapfile mit 18432 MB...
|
||||||
|
[2/3] Formatiere /swapfile als Swap...
|
||||||
|
[3/3] Aktiviere /swapfile...
|
||||||
|
|
||||||
|
=== Swap erfolgreich erstellt und aktiviert! ===
|
||||||
|
|
||||||
|
Swap-Status:
|
||||||
|
NAME TYPE SIZE USED PRIO
|
||||||
|
/swapfile file 18G 0B -2
|
||||||
|
```
|
||||||
|
|
||||||
|
### Beispielausgabe: Swap vergrößern
|
||||||
|
|
||||||
|
```
|
||||||
|
=== Swap-Anpassung wird gestartet ===
|
||||||
|
Erkannter RAM: 16384 MB
|
||||||
|
Zielgröße für Swap: 18432 MB (RAM + 2048 MB)
|
||||||
|
|
||||||
|
=== SWAP IST AKTIV - Prüfe Größe ===
|
||||||
|
NAME TYPE SIZE USED PRIO
|
||||||
|
/swapfile file 4G 512M -2
|
||||||
|
|
||||||
|
Aktuelle /swapfile-Größe: 4096 MB
|
||||||
|
|
||||||
Swap wird vergrößert von 4096 MB auf 18432 MB...
|
Swap wird vergrößert von 4096 MB auf 18432 MB...
|
||||||
Verfügbarer Speicher: 50000 MB
|
Verfügbarer Speicher: 50000 MB
|
||||||
@@ -81,6 +112,23 @@ Benötigt (temporär): 28672 MB
|
|||||||
|
|
||||||
## 🔧 Technische Details
|
## 🔧 Technische Details
|
||||||
|
|
||||||
|
### Intelligente Workflow-Auswahl
|
||||||
|
|
||||||
|
Das Skript entscheidet automatisch zwischen zwei Workflows:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Prüfung ob Swap aktiv ist
|
||||||
|
SWAP_ACTIVE=$(swapon --show | wc -l)
|
||||||
|
|
||||||
|
if [ "$SWAP_ACTIVE" -eq 0 ]; then
|
||||||
|
# WORKFLOW 1: Direktes Anlegen (3 Schritte)
|
||||||
|
# Effizienter Weg ohne temporären Swap
|
||||||
|
else
|
||||||
|
# WORKFLOW 2: Sichere Vergrößerung (6 Schritte)
|
||||||
|
# Mit temporärem Swap für unterbrechungsfreien Betrieb
|
||||||
|
fi
|
||||||
|
```
|
||||||
|
|
||||||
### Berechnungsformel
|
### Berechnungsformel
|
||||||
|
|
||||||
```
|
```
|
||||||
@@ -93,38 +141,53 @@ Diese Formel orientiert sich an gängigen Best Practices für Swap-Dimensionieru
|
|||||||
|
|
||||||
```
|
```
|
||||||
┌─────────────────────────────────────┐
|
┌─────────────────────────────────────┐
|
||||||
│ 1. Temporären 10GB Swap erstellen │
|
│ Start: Swap-Erkennung │
|
||||||
│ und aktivieren │
|
|
||||||
└────────────┬────────────────────────┘
|
└────────────┬────────────────────────┘
|
||||||
│
|
│
|
||||||
▼
|
▼
|
||||||
┌─────────────────────────────────────┐
|
┌────────────┐
|
||||||
│ 2. Alten /swapfile deaktivieren │
|
│ Swap aktiv?│
|
||||||
│ und löschen │
|
└─────┬──────┘
|
||||||
└────────────┬────────────────────────┘
|
│
|
||||||
│
|
┌─────────┴─────────┐
|
||||||
▼
|
│ NEIN │ JA
|
||||||
┌─────────────────────────────────────┐
|
▼ ▼
|
||||||
│ 3. Neuen /swapfile mit Zielgröße │
|
┌───────────────┐ ┌────────────────┐
|
||||||
│ erstellen │
|
│ WORKFLOW 1 │ │ WORKFLOW 2 │
|
||||||
└────────────┬────────────────────────┘
|
│ (3 Schritte) │ │ (6 Schritte) │
|
||||||
│
|
└───────┬───────┘ └────────┬───────┘
|
||||||
▼
|
│ │
|
||||||
┌─────────────────────────────────────┐
|
▼ ▼
|
||||||
│ 4. Neuen /swapfile aktivieren │
|
┌───────────────────────────────────────┐
|
||||||
└────────────┬────────────────────────┘
|
│ 1. /swapfile erstellen │
|
||||||
│
|
│ 2. Als Swap formatieren │
|
||||||
▼
|
│ 3. Aktivieren │
|
||||||
┌─────────────────────────────────────┐
|
└───────────────────────────────────────┘
|
||||||
│ 5. Temporären Swap deaktivieren │
|
│
|
||||||
│ und löschen │
|
▼
|
||||||
└─────────────────────────────────────┘
|
┌───────────────────────────────────┐
|
||||||
|
│ 1. Temporären 10GB Swap erstellen │
|
||||||
|
│ 2. Temporären Swap aktivieren │
|
||||||
|
│ 3. Alten /swapfile deaktivieren │
|
||||||
|
│ 4. Neuen /swapfile erstellen │
|
||||||
|
│ 5. Neuen /swapfile aktivieren │
|
||||||
|
│ 6. Temporären Swap entfernen │
|
||||||
|
└───────────────────────────────────┘
|
||||||
|
│
|
||||||
|
┌───────────────────┴───────────────────┐
|
||||||
|
│ │
|
||||||
|
▼ ▼
|
||||||
|
┌─────────────────┐ ┌─────────────────┐
|
||||||
|
│ fstab-Eintrag │ │ Swap aktiv! │
|
||||||
|
│ hinzufügen │ │ │
|
||||||
|
└─────────────────┘ └─────────────────┘
|
||||||
```
|
```
|
||||||
|
|
||||||
### Sicherheitsmechanismen
|
### Sicherheitsmechanismen
|
||||||
|
|
||||||
|
- **Swap-Status-Erkennung**: Automatische Erkennung des optimalen Workflows
|
||||||
- **Speicherplatz-Prüfung**: Validiert vor Beginn, ob genug Speicher verfügbar ist
|
- **Speicherplatz-Prüfung**: Validiert vor Beginn, ob genug Speicher verfügbar ist
|
||||||
- **Temporärer Swap**: 10GB Sicherheits-Swap während der Operation
|
- **Temporärer Swap**: 10GB Sicherheits-Swap nur bei Vergrößerung
|
||||||
- **Root-Prüfung**: Verhindert Ausführung ohne ausreichende Rechte
|
- **Root-Prüfung**: Verhindert Ausführung ohne ausreichende Rechte
|
||||||
- **Fehlerbehandlung**: `set -e` bricht bei Fehlern sofort ab
|
- **Fehlerbehandlung**: `set -e` bricht bei Fehlern sofort ab
|
||||||
- **Permission-Management**: Automatisches Setzen von `chmod 600` für Swap-Dateien
|
- **Permission-Management**: Automatisches Setzen von `chmod 600` für Swap-Dateien
|
||||||
@@ -133,9 +196,11 @@ Diese Formel orientiert sich an gängigen Best Practices für Swap-Dimensionieru
|
|||||||
|
|
||||||
- **Betriebssystem**: Debian, Ubuntu oder andere Debian-Derivate
|
- **Betriebssystem**: Debian, Ubuntu oder andere Debian-Derivate
|
||||||
- **Kernel**: Linux mit Swap-Unterstützung
|
- **Kernel**: Linux mit Swap-Unterstützung
|
||||||
- **Tools**: `bash`, `dd`, `free`, `mkswap`, `swapon`, `swapoff`, `stat`, `df`
|
- **Tools**: `bash`, `dd`, `free`, `mkswap`, `swapon`, `swapoff`, `stat`, `df`, `wc`
|
||||||
- **Rechte**: Root-Zugriff erforderlich
|
- **Rechte**: Root-Zugriff erforderlich
|
||||||
- **Speicher**: Mindestens RAM + 2GB + 10GB freier Festplattenspeicher
|
- **Speicher**:
|
||||||
|
- Bei Neuanlage: Mindestens RAM + 2GB freier Festplattenspeicher
|
||||||
|
- Bei Vergrößerung: Mindestens RAM + 2GB + 10GB freier Festplattenspeicher
|
||||||
|
|
||||||
## ⚙️ Konfiguration
|
## ⚙️ Konfiguration
|
||||||
|
|
||||||
@@ -144,11 +209,11 @@ Diese Formel orientiert sich an gängigen Best Practices für Swap-Dimensionieru
|
|||||||
Im Skript können folgende Variablen angepasst werden:
|
Im Skript können folgende Variablen angepasst werden:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Temporäre Swap-Größe (in MB)
|
# Temporäre Swap-Größe für Vergrößerung (in MB)
|
||||||
TEMP_SWAP_SIZE_MB=10240 # Standard: 10 GB
|
TEMP_SWAP_SIZE_MB=10240 # Standard: 10 GB
|
||||||
|
|
||||||
# Zusätzlicher Speicher zum RAM (in MB)
|
# Zusätzlicher Speicher zum RAM (in MB)
|
||||||
RAM_ADDITION=2048 # Standard: 2 GB
|
# TARGET_MB=$((RAM_MB + 2048)) # Standard: RAM + 2GB
|
||||||
```
|
```
|
||||||
|
|
||||||
### Beispiel: Custom-Größe
|
### Beispiel: Custom-Größe
|
||||||
@@ -157,35 +222,89 @@ Für ein System mit speziellen Anforderungen:
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Im Skript anpassen:
|
# Im Skript anpassen:
|
||||||
RAM_ADDITION=4096 # RAM + 4GB statt 2GB
|
TARGET_MB=$((RAM_MB + 4096)) # RAM + 4GB statt 2GB
|
||||||
TEMP_SWAP_SIZE_MB=20480 # 20GB temporärer Swap
|
TEMP_SWAP_SIZE_MB=20480 # 20GB temporärer Swap
|
||||||
```
|
```
|
||||||
|
|
||||||
## 📊 Verwendungsszenarien
|
## 📊 Verwendungsszenarien
|
||||||
|
|
||||||
### Szenario 1: Server mit 16GB RAM
|
### Szenario 1: Neuinstallation ohne Swap
|
||||||
|
|
||||||
|
**Ausgangssituation:**
|
||||||
```
|
```
|
||||||
RAM: 16384 MB
|
RAM: 16384 MB
|
||||||
Berechnung: 16384 + 2048 = 18432 MB
|
Swap aktiv: Nein
|
||||||
Ergebnis: 18.4 GB Swap
|
Aktion: Direktes Anlegen (3 Schritte)
|
||||||
```
|
```
|
||||||
|
|
||||||
### Szenario 2: Server mit 128GB RAM
|
**Ergebnis:**
|
||||||
|
|
||||||
```
|
```
|
||||||
RAM: 131072 MB
|
Neuer Swap: 18432 MB (18.4 GB)
|
||||||
Berechnung: 131072 + 2048 = 133120 MB
|
Workflow: WORKFLOW 1 (effizient)
|
||||||
Ergebnis: 133 GB Swap
|
Benötigter Platz: 18432 MB
|
||||||
```
|
```
|
||||||
|
|
||||||
### Szenario 3: Swap bereits groß genug
|
### Szenario 2: Server mit zu kleinem Swap
|
||||||
|
|
||||||
|
**Ausgangssituation:**
|
||||||
|
```
|
||||||
|
RAM: 16384 MB
|
||||||
|
Aktueller Swap: 4096 MB
|
||||||
|
Swap aktiv: Ja
|
||||||
|
Aktion: Sichere Vergrößerung (6 Schritte)
|
||||||
|
```
|
||||||
|
|
||||||
|
**Ergebnis:**
|
||||||
|
```
|
||||||
|
Neuer Swap: 18432 MB (18.4 GB)
|
||||||
|
Workflow: WORKFLOW 2 (mit temp. Swap)
|
||||||
|
Benötigter Platz: 28672 MB (temporär)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Szenario 3: Server mit ausreichend Swap
|
||||||
|
|
||||||
|
**Ausgangssituation:**
|
||||||
```
|
```
|
||||||
RAM: 8192 MB
|
RAM: 8192 MB
|
||||||
Ziel: 10240 MB
|
Ziel: 10240 MB
|
||||||
Aktuell: 16384 MB
|
Aktueller Swap: 16384 MB
|
||||||
|
```
|
||||||
|
|
||||||
|
**Ergebnis:**
|
||||||
|
```
|
||||||
Aktion: Keine - Swap bereits ausreichend
|
Aktion: Keine - Swap bereits ausreichend
|
||||||
|
Meldung: "Swap ist bereits groß genug"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Szenario 4: Server mit 128GB RAM
|
||||||
|
|
||||||
|
**Ausgangssituation:**
|
||||||
|
```
|
||||||
|
RAM: 131072 MB
|
||||||
|
Swap aktiv: Nein
|
||||||
|
```
|
||||||
|
|
||||||
|
**Ergebnis:**
|
||||||
|
```
|
||||||
|
Neuer Swap: 133120 MB (133 GB)
|
||||||
|
Workflow: WORKFLOW 1 (direktes Anlegen)
|
||||||
|
Benötigter Platz: 133120 MB
|
||||||
|
```
|
||||||
|
|
||||||
|
### Szenario 5: Swap-Partition statt Datei
|
||||||
|
|
||||||
|
**Ausgangssituation:**
|
||||||
|
```
|
||||||
|
RAM: 16384 MB
|
||||||
|
Swap aktiv: Ja (/dev/sda2)
|
||||||
|
/swapfile: Existiert nicht
|
||||||
|
```
|
||||||
|
|
||||||
|
**Ergebnis:**
|
||||||
|
```
|
||||||
|
Meldung: "Dieses Skript verwaltet nur /swapfile"
|
||||||
|
Aktion: Keine - Anderer Swap-Typ erkannt
|
||||||
|
Info: Aktuelle Swap-Konfiguration wird angezeigt
|
||||||
```
|
```
|
||||||
|
|
||||||
## 🛠️ Troubleshooting
|
## 🛠️ Troubleshooting
|
||||||
@@ -200,7 +319,7 @@ Benötigt: 28672 MB, Verfügbar: 20000 MB
|
|||||||
|
|
||||||
**Lösung:**
|
**Lösung:**
|
||||||
- Speicherplatz freigeben auf dem entsprechenden Volume
|
- Speicherplatz freigeben auf dem entsprechenden Volume
|
||||||
- Temporäre Swap-Größe reduzieren (`TEMP_SWAP_SIZE_MB`)
|
- Bei Vergrößerung: Temporäre Swap-Größe reduzieren (`TEMP_SWAP_SIZE_MB`)
|
||||||
- Alternative Partition für Swap verwenden
|
- Alternative Partition für Swap verwenden
|
||||||
|
|
||||||
### Problem: Swap bereits groß genug
|
### Problem: Swap bereits groß genug
|
||||||
@@ -213,7 +332,7 @@ Aktuelle Größe (20480 MB) >= Zielgröße (18432 MB)
|
|||||||
|
|
||||||
**Lösung:**
|
**Lösung:**
|
||||||
- Normal - keine Aktion erforderlich
|
- Normal - keine Aktion erforderlich
|
||||||
- Falls dennoch Anpassung gewünscht, `TARGET_MB` manuell anpassen
|
- Falls dennoch Anpassung gewünscht, Berechnungsformel im Skript anpassen
|
||||||
|
|
||||||
### Problem: Keine Root-Rechte
|
### Problem: Keine Root-Rechte
|
||||||
|
|
||||||
@@ -224,9 +343,20 @@ Fehler: Dieses Skript muss als root ausgeführt werden
|
|||||||
|
|
||||||
**Lösung:**
|
**Lösung:**
|
||||||
```bash
|
```bash
|
||||||
sudo ./resizeswap.py
|
sudo ./swap-setup-improved.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Problem: /swapfile existiert aber ist nicht aktiv
|
||||||
|
|
||||||
|
**Meldung:**
|
||||||
|
```
|
||||||
|
Warnung: /swapfile existiert aber ist nicht aktiv - wird gelöscht
|
||||||
|
```
|
||||||
|
|
||||||
|
**Lösung:**
|
||||||
|
- Normal - Skript bereinigt alte, inaktive Swap-Dateien
|
||||||
|
- Falls Datei wichtig ist, vor Ausführung sichern
|
||||||
|
|
||||||
## 🔍 Verifikation
|
## 🔍 Verifikation
|
||||||
|
|
||||||
### Swap-Status prüfen
|
### Swap-Status prüfen
|
||||||
@@ -261,20 +391,29 @@ Erwartete Ausgabe:
|
|||||||
2. **Wartungsfenster**: Während wartungsarmer Zeiten ausführen
|
2. **Wartungsfenster**: Während wartungsarmer Zeiten ausführen
|
||||||
3. **Monitoring**: Swap-Nutzung nach Anpassung überwachen
|
3. **Monitoring**: Swap-Nutzung nach Anpassung überwachen
|
||||||
4. **Dokumentation**: Änderungen in Change-Management dokumentieren
|
4. **Dokumentation**: Änderungen in Change-Management dokumentieren
|
||||||
|
5. **Planung**: Bei großen Systemen (>64GB RAM) Speicherbedarf vorher prüfen
|
||||||
|
|
||||||
### Swap-Dimensionierung
|
### Swap-Dimensionierung
|
||||||
|
|
||||||
Allgemeine Richtlinien für Swap-Größen:
|
Allgemeine Richtlinien für Swap-Größen:
|
||||||
|
|
||||||
| RAM | Empfohlener Swap | Skript-Berechnung |
|
| RAM | Empfohlener Swap | Skript-Berechnung | Workflow |
|
||||||
|----------|------------------|-------------------|
|
|----------|------------------|-------------------|------------|
|
||||||
| 1-2 GB | RAM × 2 | RAM + 2GB |
|
| 1-2 GB | RAM × 2 | RAM + 2GB | 1 oder 2 |
|
||||||
| 2-8 GB | RAM × 1.5 | RAM + 2GB |
|
| 2-8 GB | RAM × 1.5 | RAM + 2GB | 1 oder 2 |
|
||||||
| 8-64 GB | RAM + 2-4 GB | RAM + 2GB ✓ |
|
| 8-64 GB | RAM + 2-4 GB | RAM + 2GB ✓ | 1 oder 2 |
|
||||||
| > 64 GB | 8-32 GB | RAM + 2GB |
|
| > 64 GB | 8-32 GB | RAM + 2GB | 1 oder 2 |
|
||||||
|
|
||||||
Das Skript folgt der modernen Best Practice für mittlere bis große Server.
|
Das Skript folgt der modernen Best Practice für mittlere bis große Server.
|
||||||
|
|
||||||
|
### Workflow-Effizienz
|
||||||
|
|
||||||
|
| Szenario | Workflow | Schritte | Temp. Swap | Zeitaufwand |
|
||||||
|
|-----------------------|----------|----------|------------|-------------|
|
||||||
|
| Kein Swap vorhanden | 1 | 3 | Nein | ~2-5 Min |
|
||||||
|
| Swap vergrößern | 2 | 6 | Ja (10GB) | ~5-15 Min |
|
||||||
|
| Swap groß genug | - | 0 | Nein | <1 Min |
|
||||||
|
|
||||||
## 🤝 Beitragen
|
## 🤝 Beitragen
|
||||||
|
|
||||||
Wir freuen uns über Beiträge! Bitte beachten Sie:
|
Wir freuen uns über Beiträge! Bitte beachten Sie:
|
||||||
@@ -295,6 +434,7 @@ Pull Requests sind willkommen:
|
|||||||
- Ausführliche Kommentare für komplexe Logik
|
- Ausführliche Kommentare für komplexe Logik
|
||||||
- Fehlerbehandlung für alle kritischen Operationen
|
- Fehlerbehandlung für alle kritischen Operationen
|
||||||
- Tests auf Debian 11 und 12 durchführen
|
- Tests auf Debian 11 und 12 durchführen
|
||||||
|
- Beide Workflows testen (mit und ohne vorhandenen Swap)
|
||||||
|
|
||||||
## 📞 Kontakt
|
## 📞 Kontakt
|
||||||
|
|
||||||
@@ -309,7 +449,22 @@ Dieses Projekt ist für den internen Gebrauch bei JTL-Software entwickelt.
|
|||||||
|
|
||||||
## 🔖 Changelog
|
## 🔖 Changelog
|
||||||
|
|
||||||
### Version 1.0.0 (2025-10-24)
|
### Version 2.0.0 (2025-12-01)
|
||||||
|
|
||||||
|
**Neue Features:**
|
||||||
|
- ✨ Intelligente Swap-Erkennung mit automatischer Workflow-Auswahl
|
||||||
|
- ✨ Optimierter Workflow für Systeme ohne aktiven Swap (3 statt 6 Schritte)
|
||||||
|
- ✨ Erkennung von Swap-Partitionen und anderen Swap-Typen
|
||||||
|
- ✨ Automatische Bereinigung inaktiver /swapfile-Dateien
|
||||||
|
- 🔧 Verbesserte Fehlerbehandlung und Statusmeldungen
|
||||||
|
|
||||||
|
**Verbesserungen:**
|
||||||
|
- ⚡ Bis zu 50% schnellere Ausführung bei Neuinstallationen
|
||||||
|
- 💾 Reduzierter temporärer Speicherbedarf bei Systemen ohne Swap
|
||||||
|
- 📊 Detailliertere Ausgaben zur besseren Nachvollziehbarkeit
|
||||||
|
- 🛡️ Zusätzliche Sicherheitsprüfungen
|
||||||
|
|
||||||
|
### Version 1.0.0 (2024-10-24)
|
||||||
|
|
||||||
- Initial Release
|
- Initial Release
|
||||||
- Automatische RAM-Erkennung und Berechnung
|
- Automatische RAM-Erkennung und Berechnung
|
||||||
@@ -323,7 +478,9 @@ Dieses Projekt ist für den internen Gebrauch bei JTL-Software entwickelt.
|
|||||||
### Sicherheit
|
### Sicherheit
|
||||||
|
|
||||||
- **Root-Rechte erforderlich**: Skript manipuliert System-Level Ressourcen
|
- **Root-Rechte erforderlich**: Skript manipuliert System-Level Ressourcen
|
||||||
- **Temporärer Speicherbedarf**: Benötigt kurzzeitig Zielgröße + 10GB
|
- **Temporärer Speicherbedarf**:
|
||||||
|
- Workflow 1 (kein Swap): RAM + 2GB
|
||||||
|
- Workflow 2 (Vergrößerung): RAM + 2GB + 10GB (temporär)
|
||||||
- **Keine Datenvalidierung**: Swap-Inhalt wird nicht gesichert
|
- **Keine Datenvalidierung**: Swap-Inhalt wird nicht gesichert
|
||||||
- **Production-Use**: In Testumgebung validieren vor Production-Einsatz
|
- **Production-Use**: In Testumgebung validieren vor Production-Einsatz
|
||||||
|
|
||||||
@@ -333,6 +490,18 @@ Dieses Projekt ist für den internen Gebrauch bei JTL-Software entwickelt.
|
|||||||
- Keine Verkleinerung der Swap-Datei
|
- Keine Verkleinerung der Swap-Datei
|
||||||
- Keine Unterstützung für Multiple-Swap-Dateien
|
- Keine Unterstützung für Multiple-Swap-Dateien
|
||||||
- Nur Linux/Debian-basierte Systeme
|
- Nur Linux/Debian-basierte Systeme
|
||||||
|
- Andere Swap-Typen werden erkannt aber nicht verwaltet
|
||||||
|
|
||||||
|
### Vorteile der neuen Version
|
||||||
|
|
||||||
|
| Feature | v1.0 | v2.0 |
|
||||||
|
|----------------------------|------|------|
|
||||||
|
| Swap-Erkennung | ❌ | ✅ |
|
||||||
|
| Workflow-Optimierung | ❌ | ✅ |
|
||||||
|
| Neuinstallation (3 Steps) | ❌ | ✅ |
|
||||||
|
| Vergrößerung (6 Steps) | ✅ | ✅ |
|
||||||
|
| Swap-Partition-Erkennung | ❌ | ✅ |
|
||||||
|
| Speichereffizienz | ⚠️ | ✅ |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user