slogan3

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

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.