Changeset 87
- Timestamp:
- Jul 19, 2014, 1:53:35 PM (10 years ago)
- Location:
- scripts/usr/local/lib/7dtd
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
scripts/usr/local/lib/7dtd/VERSION
r80 r87 1 Version: 31 2 Release: 2014-07-17 1 Version: 32 2 Release: 2014-07-19 3 DediBuild: 320404 4 -
scripts/usr/local/lib/7dtd/commands/updateengine.sh
r80 r87 42 42 local LOCAL=$(getLocalEngineVersion) 43 43 local REMOTE=$(getRemoteEngineVersion) 44 local LOCAL_SUPPORTED_BUILD=$(cat /usr/local/lib/7dtd/VERSION | grep "DediBuild" | cut -d\ -f2) 44 45 45 46 if [ "$FORCED" = "yes" -o $REMOTE -gt $LOCAL ]; then … … 48 49 echo "Available buildid: $REMOTE" 49 50 echo 50 51 52 if [ "$LOCAL_SUPPORTED_BUILD" != "$REMOTE" ]; then 53 echo "WARNING!!! The currently installed version of the scripts do not support the newer dedicated server build!" 54 echo "If you continue you might not be able to start the server." 55 echo "Please wait for an updated release of the scripts or continue at your own risk." 56 echo 57 fi 58 51 59 while : ; do 52 60 local CONTINUE … … 70 78 71 79 cp $SDTD_BASE/linux_files/engine/* $SDTD_BASE/engine/ -R 80 cp /usr/local/lib/7dtd/server-fixes/* $SDTD_BASE/engine/7DaysToDie_Data/Managed/ 72 81 cp $SDTD_BASE/engine/Install/32bit/SteamworksManaged.dll $SDTD_BASE/engine/7DaysToDie_Data/Managed/ 73 82 74 83 chown $SDTD_USER.$SDTD_GROUP -R $SDTD_BASE/engine 84 85 if [ "$LOCAL_SUPPORTED_BUILD" != "$REMOTE" ]; then 86 echo 87 echo "Also update the scripts as soon as there is a new release for this dedicated server build." 88 echo 89 fi 75 90 else 76 91 echo "Engine is already at the newest build (local: $LOCAL, remote: $REMOTE)." -
scripts/usr/local/lib/7dtd/commands/updatescripts.sh
r59 r87 6 6 local LOCAL=$(cat /usr/local/lib/7dtd/VERSION | grep "Version" | cut -d\ -f2) 7 7 local REMOTE=$(wget -qO- http://illy.bz/fi/7dtd/VERSION | grep "Version" | cut -d\ -f2) 8 9 local LOCAL_BUILD=$(getLocalEngineVersion) 10 local LOCAL_SUPPORTED_BUILD=$(cat /usr/local/lib/7dtd/VERSION | grep "DediBuild" | cut -d\ -f2) 11 local REMOTE_SUPPORTED_BUILD=$(wget -qO- http://illy.bz/fi/7dtd/VERSION | grep "DediBuild" | cut -d\ -f2) 8 12 9 13 local FORCED … … 15 19 if [ "$FORCED" = "yes" -o $REMOTE -gt $LOCAL ]; then 16 20 echo "A newer version of the scripts is available." 17 echo "Local: v.$LOCAL "18 echo "Available: v.$REMOTE "21 echo "Local: v.$LOCAL (supported dedi build: $LOCAL_SUPPORTED_BUILD)" 22 echo "Available: v.$REMOTE (supported dedi build: $REMOTE_SUPPORTED_BUILD)" 19 23 echo 20 24 echo "Please check the release notes before continuing:" 21 25 echo " https://7dtd.illy.bz/wiki/Release%20Notes" 22 26 echo 27 28 if [ "$LOCAL_BUILD" != "$REMOTE_SUPPORTED_BUILD" ]; then 29 echo "NOTE: The newer scripts are made for a more recent build ($REMOTE_SUPPORTED_BUILD) of the dedicated server than you are running ($LOCAL_BUILD)!" 30 echo "You will have to update the engine after updating to those new scripts!" 31 echo 32 fi 23 33 24 34 while : ; do … … 52 62 chmod 0755 /usr/local/lib/7dtd -R 53 63 64 if [ -e $SDTD_BASE/engine/7DaysToDie_Data/Managed ]; then 65 cp /usr/local/lib/7dtd/server-fixes/* $SDTD_BASE/engine/7DaysToDie_Data/Managed/ 66 chown $SDTD_USER.$SDTD_GROUP -R $SDTD_BASE/engine/7DaysToDie_Data/Managed/ 67 fi 68 54 69 echo "Update done." 55 70 echo … … 58 73 echo "were new files added to the user folder /home/sdtd those changes" 59 74 echo "have not been applied!" 75 76 if [ "$LOCAL_BUILD" != "$REMOTE_SUPPORTED_BUILD" ]; then 77 echo 78 echo "Please do now update the engine by running '7dtd.sh updateengine'" 79 fi 60 80 else 61 81 echo "Scripts are already at the newest version (v.$LOCAL)." -
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 -
scripts/usr/local/lib/7dtd/playerlog.sh
r71 r87 24 24 -u "/Players/Player/@online" -v "false" \ 25 25 "$PLAYERSXML" 26 rm $(getInstancePath $INSTANCE)/logs/current_players.log 27 ln -s $PLAYERSLOG $(getInstancePath $INSTANCE)/logs/current_players.log 26 28 } 27 29 … … 33 35 # 4: Nick name 34 36 logPlayerConnect() { 35 ENTITYID="$2" 36 STEAMID="$3" 37 NICKNAME="$4" 37 local ENTITYID="$2" 38 local NICKNAME="$3" 39 local STEAMID="$4" 40 local IP="$5" 38 41 39 echo "$(timestamp) +++ $ENTITYID $NICKNAME $STEAMID " >> "$PLAYERSLOG"42 echo "$(timestamp) +++ $ENTITYID $NICKNAME $STEAMID $IP" >> "$PLAYERSLOG" 40 43 41 44 createPlayerList … … 53 56 -i "$XPATHBASE" -t attr -n "online" -v "true" \ 54 57 -i "$XPATHBASE" -t attr -n "entityid" -v "$ENTITYID" \ 58 -i "$XPATHBASE" -t attr -n "lastIp" -v "$IP" \ 55 59 "$PLAYERSXML" 56 60 else … … 62 66 -u "$XPATHBASE/@entityid" -v "$ENTITYID" \ 63 67 -u "$XPATHBASE/@logins" -v "$LOGINS" \ 68 -u "$XPATHBASE/@lastIp" -v "$IP" \ 64 69 "$PLAYERSXML" 65 70 fi
Note:
See TracChangeset
for help on using the changeset viewer.