Changeset 87 for scripts/usr/local/lib/7dtd/monitor-log.sh
- Timestamp:
- Jul 19, 2014, 1:53:35 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
scripts/usr/local/lib/7dtd/monitor-log.sh
r72 r87 12 12 LOG=$(getInstancePath $INSTANCE)/logs/$(date '+%Y-%m-%d_%H-%M-%S')_output.log 13 13 CHATLOG=$(getInstancePath $INSTANCE)/logs/$(date '+%Y-%m-%d_%H-%M-%S')_chat.log 14 COMMANDLOG=$(getInstancePath $INSTANCE)/logs/$(date '+%Y-%m-%d_%H-%M-%S')_commandExecution.log 14 15 15 16 timestamp() { … … 18 19 19 20 handleConnect() { 20 tel=$(telnetCommand $INSTANCE lp) 21 playerline=$(echo "$tel" | tr -d '\r' | grep "id=$2,") 22 #nickname=$(echo "$playerline" | sed -r 's/^.* id=[0-9]*, ([^,]*), pos=.*$/\1/') 23 steamid=$(echo "$playerline" | sed -r 's/^.*, health=[0-9]*, ([0-9]*)$/\1/') 21 local clientId="$1" 22 local entityId="$2" 23 local name="$3" 24 local steamId="$4" 25 local ip="$5" 24 26 25 if [ -z "$steamid" ]; then 26 return 27 fi 28 29 logPlayerConnect $INSTANCE "$2" "$steamid" "$3" 27 logPlayerConnect $INSTANCE "$entityId" "$name" "$steamId" "$ip" 30 28 31 29 for H in $(getHooksFor playerConnect); do 32 $H $INSTANCE "$ 1" "$2" "$3" "$steamid"30 $H $INSTANCE "$clientId" "$entityId" "$name" "$steamId" "$ip" 33 31 done 34 32 } 35 33 36 34 handleDisconnect() { 37 logPlayerDisconnect $INSTANCE "$2" 35 local clientId="$1" 36 local entityId="$2" 37 38 logPlayerDisconnect $INSTANCE "$entityId" 38 39 39 40 for H in $(getHooksFor playerDisconnect); do 40 $H $INSTANCE "$ 1" "$2" "$NICKNAME" "$STEAMID"41 $H $INSTANCE "$clientId" "$entityId" "$NICKNAME" "$STEAMID" 41 42 done 42 43 } … … 50 51 } 51 52 53 handleRemoteCommand() { 54 local cmd="$1" 55 local name="$2" 56 57 echo "$(timestamp): Player \"$name\" executed \"$cmd\"" >> $COMMANDLOG 58 59 for H in $(getHooksFor remoteCommand); do 60 $H $INSTANCE "$cmd" "$name" 61 done 62 } 63 64 handleTelnetCommand() { 65 local cmd="$1" 66 local ip="$2" 67 68 echo "$(timestamp): Telnet from \"$ip\" executed \"$cmd\"" >> $COMMANDLOG 69 70 for H in $(getHooksFor telnetCommand); do 71 $H $INSTANCE "$cmd" "$ip" 72 done 73 } 74 75 52 76 if [ ! -d "$(getInstancePath $INSTANCE)/logs" ]; then 53 77 mkdir "$(getInstancePath $INSTANCE)/logs" … … 60 84 echo "Starting instance $INSTANCE at $(timestamp)" >> $LOG 61 85 echo >> $LOG 86 87 rm $(getInstancePath $INSTANCE)/logs/current_output.log 88 rm $(getInstancePath $INSTANCE)/logs/current_chat.log 89 rm $(getInstancePath $INSTANCE)/logs/current_commandExecution.log 90 ln -s $LOG $(getInstancePath $INSTANCE)/logs/current_output.log 91 ln -s $CHATLOG $(getInstancePath $INSTANCE)/logs/current_chat.log 92 ln -s $COMMANDLOG $(getInstancePath $INSTANCE)/logs/current_commandExecution.log 62 93 63 94 sleep 5 … … 73 104 if [ -n "$line" ]; then 74 105 echo "$(timestamp): $line" >> $LOG 75 if [ -n "$(echo "$line" | grep '^RequestToSpawnPlayer:')" ]; then 76 entityId=$(expr "$line" : 'RequestToSpawnPlayer: \([0-9]*\), [0-9]*, .*, [0-9]*$') 77 playerId=$(expr "$line" : 'RequestToSpawnPlayer: [0-9]*, \([0-9]*\), .*, [0-9]*$') 78 playerName=$(expr "$line" : 'RequestToSpawnPlayer: [0-9]*, [0-9]*, \(.*\), [0-9]*$') 79 unknown=$(expr "$line" : 'RequestToSpawnPlayer: [0-9]*, [0-9]*, .*, \([0-9]*\)$') 106 #Player connected, clientid=[0-9]*, entityid=[0-9]*, name=.*, steamid=[0-9]*, ip=[0-9.]*$ 107 if [ -n "$(echo "$line" | grep '^Player connected,')" ]; then 108 clientId=$(expr "$line" : 'Player connected, clientid=\([0-9]*\), entityid=[0-9]*, name=.*, steamid=[0-9]*, ip=[0-9.]*$') 109 entityId=$(expr "$line" : 'Player connected, clientid=[0-9]*, entityid=\([0-9]*\), name=.*, steamid=[0-9]*, ip=[0-9.]*$') 110 playerName=$(expr "$line" : 'Player connected, clientid=[0-9]*, entityid=[0-9]*, name=\(.*\), steamid=[0-9]*, ip=[0-9.]*$') 111 steamId=$(expr "$line" : 'Player connected, clientid=[0-9]*, entityid=[0-9]*, name=.*, steamid=\([0-9]*\), ip=[0-9.]*$') 112 ip=$(expr "$line" : 'Player connected, clientid=[0-9]*, entityid=[0-9]*, name=.*, steamid=[0-9]*, ip=\([0-9.]*\)$') 80 113 sleep 1 81 handleConnect "$ playerId" "$entityId" "$playerName"82 unset entityId playerId playerName unknown114 handleConnect "$clientId" "$entityId" "$playerName" "$steamId" "$ip" 115 unset clientId entityId playerName steamId ip 83 116 else 117 #Removing player with id clientId=[0-9]*, entityId=[0-9]*$ 84 118 if [ -n "$(echo "$line" | grep '^Removing player with id ')" ]; then 85 119 playerId=$(expr "$line" : 'Removing player with id clientId=\([0-9]*\), entityId=[0-9]*$') … … 88 122 unset playerId entityId 89 123 else 124 #GMSG: .*$ 90 125 if [ -n "$(echo "$line" | grep -E '^GMSG: .+')" ]; then 91 126 msg=$(expr "$line" : 'GMSG: \(.*\)$') 92 127 handleChat "$msg" 93 128 unset msg 129 else 130 #Executed command ".*" from player ".*"$ 131 if [ -n "$(echo "$line" | grep '^Executed command ')" ]; then 132 cmd=$(expr "$line" : 'Executed command "\(.*\)" from player ".*"$') 133 nick=$(expr "$line" : 'Executed command ".*" from player "\(.*\)"$') 134 handleRemoteCommand "$cmd" "$nick" 135 unset cmd nick 136 else 137 #Telnet executed ".*" from: .*$ 138 if [ -n "$(echo "$line" | grep '^Telnet executed ')" ]; then 139 cmd=$(expr "$line" : 'Telnet executed "\(.*\)" from: .*$') 140 ip=$(expr "$line" : 'Telnet executed ".*" from: \(.*\)$') 141 handleTelnetCommand "$cmd" "$ip" 142 unset cmd ip 143 fi 144 fi 94 145 fi 95 146 fi
Note:
See TracChangeset
for help on using the changeset viewer.