-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlogscript.sh
More file actions
executable file
·30 lines (25 loc) · 1.18 KB
/
logscript.sh
File metadata and controls
executable file
·30 lines (25 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/bash
mclogdir="/home/minecraft/logs"
backuplogdir="/home/minecraft/backups/system/logs"
essentialsdatadir="/home/minecraft/plugins/Essentials/userdata"
mapscript="/home/minecraft/maps/genmaps.sh"
source $mapscript
#remove server logs older than a year and map logs older than a month
# see https://unix.stackexchange.com/a/288031
find $mclogdir/ -type f -name '*[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9].log.gz' -exec sh -c 'fdate="${1%-?.log.gz}"; fdate="${fdate##*/}"; [ "$fdate" "<" "$(date +%F -d "1 year ago")" ] && rm "$1"' find-sh {} \;
#find $mclogdir/ -mtime +358 -type f -delete
find $maplogdir/ -mtime +30 -type f -delete
find $backuplogdir/ -mtime +183 -type f -delete
tmux send-keys -t minecraft 'co purge t:365d #optimize' C-m
#remove ips in server logs older than 7 days
logfiles=$(find $mclogdir/*.log.gz -mtime +7 -type f)
for file in $logfiles; do
cp "$file" "$file~" &&
rm "$file" &&
gzip -cd "$file~" |
sed 's/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}/x.x.x.x/g' |
gzip > "$file" &&
rm "$file~"
done
#remove ips in essentials player data
find $essentialsdatadir/* -mtime +7 -type f -exec sed -i 's/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}/0.0.0.0/g' {} \;