Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
wartung:start [2010/06/15 17:08] DeaD_EyE Bash-Script geschrieben |
wartung:start [2012/12/26 17:02] (aktuell) DeaD_EyE [Statistiken löschen] |
||
---|---|---|---|
Zeile 39: | Zeile 39: | ||
===== Fertiges Script ===== | ===== Fertiges Script ===== | ||
- | Das Script führt alle Aufgaben nacheinander aus. Der Pfad eines Servers kann in der Variable ''server[1]'' festgelegt werden. Sollen mehrere Verzeichnisse abgearbeitet werden, können auch mehrere Arays definiert werden((server[2],server[3], ...)). | + | Das Script führt alle Aufgaben nacheinander aus. Der Pfad eines Servers kann in der Variable ''server[0]'' festgelegt werden. Sollen mehrere Verzeichnisse abgearbeitet werden, können auch mehrere Arays definiert werden((server[1],server[2], ...)). |
^ Variable ^ Erklärung ^ | ^ Variable ^ Erklärung ^ | ||
|server[x]|Es können über diese Variable beliebig viele Server eingetragen werden.| | |server[x]|Es können über diese Variable beliebig viele Server eingetragen werden.| | ||
|days_log|Gibt das Alter in Tagen der Log-Dateien an, die komprimiert werden sollen.| | |days_log|Gibt das Alter in Tagen der Log-Dateien an, die komprimiert werden sollen.| | ||
- | |day_log_gz|Gibt das Alter in Tagen der komprimierten Log-Dateien an, die gelöscht werden sollen.| | + | |day_log_gz|Gibt das Alter in Tagen der komprimierten Log-Dateien an, die gelöscht werden sollen.\\ Hier darauf achten, dass gzip den Zeitstempel der Datei nicht ändert.| |
|days_downloads|Legt fest, ab welchem Alter in Tagen, die Dateien im Verzeichnis downloads gelöscht werden sollen.| | |days_downloads|Legt fest, ab welchem Alter in Tagen, die Dateien im Verzeichnis downloads gelöscht werden sollen.| | ||
|clean_logs|1 aktviert den Komprimier-/Löschmechanismus der Log-Dateien.| | |clean_logs|1 aktviert den Komprimier-/Löschmechanismus der Log-Dateien.| | ||
|clean_downloads|1 aktivert das Löschen der Downloads.| | |clean_downloads|1 aktivert das Löschen der Downloads.| | ||
|clean_ztmp|1 aktivert das Löschen aller ztmp-Dateien.| | |clean_ztmp|1 aktivert das Löschen aller ztmp-Dateien.| | ||
- | |clean_broken_links|1 aktivert das Löschen aller verwaisten Symlinks.\\Macht nur Sinn, wenn man mit Symlinks arbeitet.| | + | |clean_broken_links|1 aktivert das Löschen aller verwaisten Symlinks.\\ Macht nur Sinn, wenn man mit Symlinks arbeitet.| |
- | <code>#!/bin/bash | + | **Download:** {{:wartung:servercleaner.sh|}} |
+ | <file bash servercleaner.sh>#!/bin/bash | ||
# | # | ||
Zeile 55: | Zeile 56: | ||
# | # | ||
- | server[1]=/home/gs/server1 | + | server[0]=/home/gs/server1 |
- | server[2]=/home/gs/server2 | + | server[1]=/home/gs/server2 |
+ | server[2]= | ||
server[3]= | server[3]= | ||
- | server[4]= | ||
days_log=7 | days_log=7 | ||
Zeile 80: | Zeile 81: | ||
[[ "$fail" = "1" ]] && echo "Script aborted" && exit | [[ "$fail" = "1" ]] && echo "Script aborted" && exit | ||
- | [[ "$clean_logs" = "1" ]] && echo "Gzip *.log older than +$days_log days" && \ | + | [[ "$clean_logs" = "1" ]] && echo "Gzip *.log older than $days_log days" && \ |
- | find ${server[*]} -type f -path "*/logs/*" -name "*.log" -mtime +7 -exec nice gzip '{}' \; | + | find ${server[*]} -type f -path "*/logs/*" -name "*.log" -mtime +$days_log -exec nice gzip '{}' \; |
- | [[ "$clean_logs" = "1" ]] && echo "Deleting *.log.gz older than +$days_log_gz days" && \ | + | [[ "$clean_logs" = "1" ]] && echo "Deleting *.log.gz older than $days_log_gz days" && \ |
- | find ${server[*]} -type f -path "*/logs/*" -name "*.log.gz" -mtime +14 -delete | + | find ${server[*]} -type f -path "*/logs/*" -name "*.log.gz" -mtime +$days_log_gz -delete |
[[ "$clean_ztmp" = "1" ]] && echo "Deleting *.ztmp (*.dat.zmtp is excluded)" && \ | [[ "$clean_ztmp" = "1" ]] && echo "Deleting *.ztmp (*.dat.zmtp is excluded)" && \ | ||
find ${server[*]} -name *.ztmp -not -name *.dat.ztmp -delete | find ${server[*]} -name *.ztmp -not -name *.dat.ztmp -delete | ||
- | [[ "$clean_downloads" = "1" ]] && echo "Deleting downloads, which are older then +$days_downloads" && \ | + | [[ "$clean_downloads" = "1" ]] && echo "Deleting downloads, which are older then $days_downloads days" && \ |
find ${server[*]} -type f -name ????????.dat* -path "*/downloads/*" -mtime +$days_downloads -delete | find ${server[*]} -type f -name ????????.dat* -path "*/downloads/*" -mtime +$days_downloads -delete | ||
[[ "$clean_broken_links" = "1" ]] && echo "Deleting broken symlinks" && \ | [[ "$clean_broken_links" = "1" ]] && echo "Deleting broken symlinks" && \ | ||
find -L ${server[*]} -type l -delete | find -L ${server[*]} -type l -delete | ||
- | </code> | + | </file> |
+ | ===== CS:GO ===== | ||
+ | ==== Statistiken löschen ==== | ||
+ | Im Modverzeichnis des Gameservers werden seit neustem txt-Dateien für jede Runde gespeichert. Welchen tieferen Sinn die Daten haben, ist uns noch unbekannt. Um die Dateien zu löschen, kann man folgenden Befehl verwenden: | ||
+ | <code>find /home/server/csgo1/csgo \ | ||
+ | -maxdepth 1 -regextype posix-extended \ | ||
+ | -regex '.+/backup_[0-9]{8}_[0-9]{6}_\w{2}_\w+\.txt$' \ | ||
+ | -delete</code> | ||
+ | Mit dem Parameter -maxdepth 1 wird die Suchtiefe auf das gleiche Verzeichnis beschränkt. Das verringert die IO-Last des Hosts. Durch den Regex werden nur Dateien gefunden, die folgendem vereinfachtem Schema entsprechen: | ||
+ | <code>*/backup_dddddddd_dddddd_xx_x*.txt</code> | ||
+ | d = Zahl\\ | ||
+ | x = Alphanumerisch mit Sonderzeichen\\ | ||
+ | * = Alles bzw. Wiederholung vom vorherigen |