Ontwikkel een Bash of PowerShell Script voor Geautomatiseerde Server Resource Cleanup en Optimalisatie
description
Met deze prompt kan de gebruiker een script ontwikkelen dat automatisch ongebruikte en tijdelijke bestanden opschoont, waardoor schijfruimte vrij komt en de serverprestaties verbeteren. Dit voorkomt handmatige opschoning en minimaliseert downtime door efficiënte resourcebeheer, wat beter is dan handmatige of periodieke scripts zonder dynamische criteria.
prompt
Help me een Bash of PowerShell script te maken dat automatisch ongebruikte bestanden, tijdelijke data en caches op mijn server opschoont om schijfruimte te optimaliseren en de prestaties te verbeteren. Scan locaties: <voer de paden in die gescand moeten worden ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Hier is een Bash-script dat voldoet aan jouw wensen:
```bash
#!/bin/bash
# Definieer de locaties
LOG_DIR="/var/log"
TMP_DIR="/tmp"
REPORT_FILE="/home/admin/cleanup_report.txt"
# Datum van 60 dagen geleden
DAGEN=60
DATUM=$(date -d "$DAGEN days ago" +%Y-%m-%d)
# Maak het rapport aan of leeg het
> "$REPORT_FILE"
echo "Cleanup rapport - $(date)" >> "$REPORT_FILE"
echo "----------------------------------------" >> "$REPORT_FILE"
# Verwijder logbestanden ouder dan 60 dagen met extensie .log in /var/log
echo "Verwijderen van oude logbestanden in $LOG_DIR..." >> "$REPORT_FILE"
find "$LOG_DIR" -type f -name "*.log" -mtime +$DAGEN -print -delete >> "$REPORT_FILE"
# Verwijder alle tijdelijke bestanden ouder dan 60 dagen in /tmp
echo "Verwijderen van tijdelijke bestanden in $TMP_DIR..." >> "$REPORT_FILE"
find "$TMP_DIR" -type f -mtime +$DAGEN -print -delete >> "$REPORT_FILE"
# Optioneel: kun je ook mappen verwijderen of andere cache locaties toevoegen
echo "Opschoning voltooid." >> "$REPORT_FILE"
echo "Rapport opgeslagen in $REPORT_FILE"
```
**Hoe te gebruiken:**
1. Sla dit script op als bijvoorbeeld `cleanup.sh`.
2. Maak het uitvoerbaar met: `chmod +x cleanup.sh`.
3. Voer het script uit als root of met sudo: `sudo ./cleanup.sh`.
**Opmerking:**
- Dit script verwijdert alleen bestanden ouder dan 60 dagen met de extensie `.log` in `/var/log`.
- Het verwijdert alle bestanden ouder dan 60 dagen in `/tmp`.
- Het rapport wordt opgeslagen in `/home/admin/cleanup_report.txt`.
Wil je ook andere cache of tijdelijke data opschonen? Geef gerust aan, dan pas ik het script voor je aan.
provider: deepseek
model: deepseek-chat
Hier is een Bash-script dat aan uw vereisten voldoet:
```bash
#!/bin/bash
# Configuratie
LOG_DIRS=("/var/log" "/tmp")
FILE_AGE="60"
FILE_EXT=".log"
REPORT_FILE="/home/admin/cleanup_report.txt"
# Maak rapportbestand aan
echo "=== Opschoningsrapport - $(date) ===" > $REPORT_FILE
echo "Scangebieden: ${LOG_DIRS[*]}" >> $REPORT_FILE
echo "Criteria: bestanden ouder dan $FILE_AGE dagen met extensie $FILE_EXT" >> $REPORT_FILE
echo "" >> $REPORT_FILE
# Functie om schijfruimte voor en na te meten
get_disk_usage() {
df -h / | awk 'NR==2 {print $4}'
}
# Initiële schijfruimte
initial_space=$(get_disk_usage)
echo "Initiële vrije schijfruimte: $initial_space" >> $REPORT_FILE
echo "" >> $REPORT_FILE
# Loop door alle mappen
for dir in "${LOG_DIRS[@]}"; do
echo "Scannen van: $dir" >> $REPORT_FILE
# Controleer of map bestaat
if [ ! -d "$dir" ]; then
echo " WAARSCHUWING: Map $dir bestaat niet" >> $REPORT_FILE
continue
fi
# Zoek en verwijder bestanden
find "$dir" -name "*$FILE_EXT" -type f -mtime +$FILE_AGE -exec ls -la {} \; >> $REPORT_FILE 2>/dev/null
deleted_count=$(find "$dir" -name "*$FILE_EXT" -type f -mtime +$FILE_AGE -exec rm -v {} \; 2>/dev/null | wc -l)
echo " Verwijderde bestanden: $deleted_count" >> $REPORT_FILE
echo "" >> $REPORT_FILE
done
# Finale schijfruimte
final_space=$(get_disk_usage)
echo "Vrije schijfruimte na opschoning: $final_space" >> $REPORT_FILE
echo "Ruimte vrijgemaakt: $(( $(echo ${final_space%G} | cut -d'G' -f1) - $(echo ${initial_space%G} | cut -d'G' -f1) ))GB" >> $REPORT_FILE
echo "Opschoning voltooid. Rapport opgeslagen in: $REPORT_FILE"
```
**PowerShell-alternatief voor Windows servers:**
```powershell
# Opschoningsscript voor Windows PowerShell
$LogDirs = @("C:\var\log", "C:\tmp")
$FileAge = (Get-Date).AddDays(-60)
$ReportFile = "C:\home\admin\cleanup_report.txt"
"=== Opschoningsrapport - $(Get-Date) ===" | Out-File $ReportFile
"Scangebieden: $($LogDirs -join ', ')" | Out-File $ReportFile -Append
foreach ($dir in $LogDirs) {
if (Test-Path $dir) {
$files = Get-ChildItem $dir -Filter "*.log" | Where-Object LastWriteTime -lt $FileAge
$files | Remove-Item -Verbose 4>&1 | Out-File $ReportFile -Append
}
}
```
**Gebruiksaanwijzing:**
1. Sla het Bash-script op als `cleanup_script.sh`
2. Maak het uitvoerbaar: `chmod +x cleanup_script.sh`
3. Voer uit als root: `sudo ./cleanup_script.sh`
**Belangrijke veiligheidswaarschuwingen:**
- Test eerst op een ontwikkelomgeving
- Zorg voor back-ups voordat u dit script uitvoert
- Sommige logbestanden kunnen belangrijk zijn voor debugging
- Pas de leeftijdsgrens aan naar behoefte
Het script genereert een gedetailleerd rapport met alle verwijderde bestanden en de vrijgemaakte schijfruimte.