after
This commit is contained in:
6
mount_dayz.sh
Executable file
6
mount_dayz.sh
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
sudo mkdir -p /mnt/dayz
|
||||||
|
sudo mount -t drvfs //truenas.home.weaver/dayz /mnt/dayz
|
||||||
|
|
||||||
|
ls -l /mnt/dayz
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
|
|
||||||
|
|
||||||
mkdir /mnt/dayz
|
|
||||||
|
|
||||||
mount -t drvfs '\\truenas.home.weaver\dayz' /mnt/dayz
|
|
||||||
57
start.sh
57
start.sh
@@ -13,11 +13,9 @@ export STOCK_SERVER_DATA="$DAYZ_FILES/stock/DayZServer"
|
|||||||
export MAIN="/mnt/c/DAYZ"
|
export MAIN="/mnt/c/DAYZ"
|
||||||
export SERVERS="$MAIN/servers"
|
export SERVERS="$MAIN/servers"
|
||||||
export CACHE="$MAIN/cache"
|
export CACHE="$MAIN/cache"
|
||||||
export STORAGE="$MAIN/STORAGE"
|
|
||||||
|
|
||||||
export MOD_CACHE="$CACHE/mods"
|
export MOD_CACHE="$CACHE/mods"
|
||||||
export RESTART_INTERVAL=$(( 15 * 60 + 30 ))
|
export RESTART_INTERVAL=$((60 * 60 * 4 + 3))
|
||||||
#$((60 * 60 * 4 + 3))
|
|
||||||
|
|
||||||
# -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
|
# -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
|
||||||
# SERVER SPECIFIC SETTINGS
|
# SERVER SPECIFIC SETTINGS
|
||||||
@@ -28,14 +26,18 @@ export MAP_FOLDER_NAME='chernarus'
|
|||||||
export LOCAL_FOLDER_MAP_NAME='dayzOffline.chernarusplus'
|
export LOCAL_FOLDER_MAP_NAME='dayzOffline.chernarusplus'
|
||||||
export SERVER_PORT=2302
|
export SERVER_PORT=2302
|
||||||
export SERVER_CPU=8
|
export SERVER_CPU=8
|
||||||
export SERVER_CONFIG_FILE="$SERVER_HOME/serverDZ.cfg"
|
export SERVER_CONFIG_FILE="serverDZ.cfg"
|
||||||
export SERVER_STORAGE="$STORAGE/$SERVER_NAME"
|
|
||||||
|
|
||||||
# -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
|
# -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
|
||||||
# Helper functions
|
# Helper functions
|
||||||
# -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
|
# -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
|
||||||
|
if [ ! "$DEBUG" ] ; then
|
||||||
|
alias do_sync='rsync -rltDhu --delete --partial'
|
||||||
|
alias do_secure_sync='rsync -crltDhu --delete --partial'
|
||||||
|
else
|
||||||
alias do_sync='rsync -vrltDhu --delete --partial --progress'
|
alias do_sync='rsync -vrltDhu --delete --partial --progress'
|
||||||
alias do_secure_sync='rsync -cvrltDhu --delete --partial --progress'
|
alias do_secure_sync='rsync -cvrltDhu --delete --partial --progress'
|
||||||
|
fi
|
||||||
|
|
||||||
msg() {
|
msg() {
|
||||||
>&2 printf '[*] %s ...\n' "$*"
|
>&2 printf '[*] %s ...\n' "$*"
|
||||||
@@ -63,12 +65,6 @@ check() {
|
|||||||
echo "hint: mount -t drvfs //truenas.home.weaver/dayz $DAYZ_FILES"
|
echo "hint: mount -t drvfs //truenas.home.weaver/dayz $DAYZ_FILES"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for storage_folder in "$SERVER_STORAGE" "$SERVER_STORAGE/Profilesfolder" "$SERVER_STORAGE/storage_1" ; do
|
|
||||||
if [ ! -d "$storage_folder" ] ; then
|
|
||||||
die "FOLDER '$storage_folder' DOES NOT EXIST"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
|
# -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
|
||||||
@@ -76,6 +72,7 @@ check() {
|
|||||||
# -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
|
# -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
|
||||||
init() {
|
init() {
|
||||||
mkdir -p "$SERVER_HOME" "$MOD_CACHE/$MAP_FOLDER_NAME"
|
mkdir -p "$SERVER_HOME" "$MOD_CACHE/$MAP_FOLDER_NAME"
|
||||||
|
:>"$SERVER_HOME/.modstring"
|
||||||
}
|
}
|
||||||
|
|
||||||
setup_environment() {
|
setup_environment() {
|
||||||
@@ -87,8 +84,9 @@ setup_environment() {
|
|||||||
done
|
done
|
||||||
|
|
||||||
# list of all stock files
|
# list of all stock files
|
||||||
for file in ban.txt dayz.gproj dayzsettings.xml serverDZ.cfg whitelist.txt ; do
|
for file in ban.txt dayz.gproj dayzsetting.xml serverDZ.cfg whitelist.txt \
|
||||||
do_sync "$STOCK_SERVER_DATA/$file"/ "$SERVER_HOME/$file" || die "Failed to copy stock: $file"
|
DayZServer_x64.exe steam_api64.dll steamclient64.dll tier0_s64.dll vstdlib_s64.dll ; do
|
||||||
|
do_sync "$STOCK_SERVER_DATA/$file" "$SERVER_HOME/$file" || die "Failed to copy stock: $file"
|
||||||
done
|
done
|
||||||
|
|
||||||
# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||||
@@ -102,10 +100,8 @@ setup_environment() {
|
|||||||
msg "Copying mod files"
|
msg "Copying mod files"
|
||||||
do_sync "$DAYZ_FILES/mods/$MAP_FOLDER_NAME"/ "$MOD_CACHE/$MAP_FOLDER_NAME" || die "Failed to copy mod files"
|
do_sync "$DAYZ_FILES/mods/$MAP_FOLDER_NAME"/ "$MOD_CACHE/$MAP_FOLDER_NAME" || die "Failed to copy mod files"
|
||||||
|
|
||||||
if [ ! -f "$SERVER_HOME/DZSALModServer.exe" ] ; then
|
|
||||||
msg "Copying DZSA executable"
|
msg "Copying DZSA executable"
|
||||||
do_secure_sync "$DAYZ_FILES/software/DZSALModServer.exe" "$SERVER_HOME/DZSALModServer.exe"
|
do_sync "$DAYZ_FILES/software/DZSALModServer.exe" "$SERVER_HOME/DZSALModServer.exe"
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
|
# -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
|
||||||
@@ -118,12 +114,12 @@ load_mods() {
|
|||||||
|
|
||||||
mkdir -p "$SERVER_HOME/mods"
|
mkdir -p "$SERVER_HOME/mods"
|
||||||
|
|
||||||
modstring=""
|
_modstring=""
|
||||||
while read -r mod ; do
|
while read -r mod ; do
|
||||||
case $mod in
|
case $mod in
|
||||||
'@'*)
|
'@'*)
|
||||||
msg "- Found mod: $mod"
|
msg "- Found mod: $mod"
|
||||||
modstring="$modstring;mods/$mod"
|
_modstring="$_modstring;mods/$mod"
|
||||||
do_sync "$MOD_CACHE/$MAP_FOLDER_NAME/$mod"/ "$SERVER_HOME/mods/$mod"
|
do_sync "$MOD_CACHE/$MAP_FOLDER_NAME/$mod"/ "$SERVER_HOME/mods/$mod"
|
||||||
|
|
||||||
for addon_folder in addons Addons addon Addon ; do
|
for addon_folder in addons Addons addon Addon ; do
|
||||||
@@ -149,8 +145,8 @@ load_mods() {
|
|||||||
done < "$MOD_CACHE/$MAP_FOLDER_NAME/mods.txt"
|
done < "$MOD_CACHE/$MAP_FOLDER_NAME/mods.txt"
|
||||||
|
|
||||||
# trim the initial leading ';'
|
# trim the initial leading ';'
|
||||||
modstring=${modstring#;}
|
_modstring=${_modstring#;}
|
||||||
printf '%s\n' "$modstring"
|
printf '%s\n' "$_modstring" > .modstring
|
||||||
}
|
}
|
||||||
|
|
||||||
# -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
|
# -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
|
||||||
@@ -166,7 +162,8 @@ main() {
|
|||||||
setup_environment || die "Could not set up environment."
|
setup_environment || die "Could not set up environment."
|
||||||
|
|
||||||
msg "Loading mods"
|
msg "Loading mods"
|
||||||
mod_string=$(load_mods)
|
load_mods || die "Could not load mods"
|
||||||
|
mod_string=$(cat .modstring)
|
||||||
|
|
||||||
>&2 printf 'MOD_STRING: %s\n' "$mod_string"
|
>&2 printf 'MOD_STRING: %s\n' "$mod_string"
|
||||||
|
|
||||||
@@ -174,17 +171,14 @@ main() {
|
|||||||
printf '%s - Server started.\n' "$(date)"
|
printf '%s - Server started.\n' "$(date)"
|
||||||
echo '===================================='
|
echo '===================================='
|
||||||
|
|
||||||
cmd.exe /C start "DayZ Server" /min "DZSALModServer.exe" \
|
# creating temp.bat here to avoid the arg max char limit of windows cmd.exe
|
||||||
-config="$SERVER_CONFIG_FILE" \
|
cat > temp.bat <<EOF
|
||||||
-port="$SERVER_PORT" \
|
:start
|
||||||
-profiles=Profilesfolder \
|
start "DayZ Server" /min DZSALModServer.exe -config="$SERVER_CONFIG_FILE" -port="$SERVER_PORT" -profiles=Profilesfolder -mod="$mod_string" -cpuCount="$SERVER_CPU" -dologs -adminlog -netlog -freezecheck
|
||||||
-mod="$mod_string" \
|
EOF
|
||||||
-cpuCount="$SERVER_CPU" \
|
cmd.exe /C temp.bat
|
||||||
-dologs -adminlog \
|
|
||||||
-netlog -freezecheck
|
|
||||||
|
|
||||||
msg "Sleeping for: $RESTART_INTERVAL"
|
printf '\n**** Sleeping for: %s *****\n\n' "$RESTART_INTERVAL"
|
||||||
sleep "$RESTART_INTERVAL"
|
|
||||||
count=0
|
count=0
|
||||||
while [ "$count" -lt "$RESTART_INTERVAL" ] ; do
|
while [ "$count" -lt "$RESTART_INTERVAL" ] ; do
|
||||||
sleep 60
|
sleep 60
|
||||||
@@ -197,6 +191,7 @@ main() {
|
|||||||
msg "Time up"
|
msg "Time up"
|
||||||
msg "Killing server"
|
msg "Killing server"
|
||||||
cmd.exe /C taskkill /im DayZServer_x64.exe /F
|
cmd.exe /C taskkill /im DayZServer_x64.exe /F
|
||||||
|
rm -f temp.bat 2>/dev/null ||:
|
||||||
|
|
||||||
msg "Sleeping 10 seconds to settle"
|
msg "Sleeping 10 seconds to settle"
|
||||||
sleep 10
|
sleep 10
|
||||||
|
|||||||
Reference in New Issue
Block a user