Moderators: Docere, Gordon der Eiserne
werden in der Datenbank ebenfals alle Änderungen der Welt gespeichert sprich plazierte Häuser Mauern etc? Und wo genau kann ich bei MariaDB 5.5.39 die gesicherte Datenbank wieder importieren ich habe da nur den Menüpunkt Datenbank SQL Export?
C:\Programme\MariaDB 5.5\bin\mysqldump" -uroot -p<RootPasswort> lif_1 > c:\lif_tools\sicherung\lif_1
"C:\Program Files\7-Zip\7z.exe" a -t7z C:\_Stuff\SaveGames\Life_is_Feudal\lif_1_%DATUM%_%ZEIT%.7z "c:\lif_tools\sicherung\lif_1_%DATUM%_%ZEIT%.sql"
get-process : Es kann kein Prozess mit dem Namen "werfault" gefunden werden. Überprüfen Sie den Prozessname, rufen Sie das Cmdlet erneut auf.
In C:\lif_tools\lif_healthcheck.ps1:7 Zeichen:10
+ $e = get-process $procerror
+ CategoryInfo : ObjectNotFound: (werfault:String) [Get-Process], ProcessCommandException
+ FullyQualifiedErrorId : NoProcessFoundForGivenName,Microsoft.PowerShell.Commands.GetProcessCommand
### edit start ###
$app = "C:\Server\LifeIsFeudalServer\ddctd_cm_yo_server.exe"
$arguments = "-worldID 1"
$port = "28000" # Port the server uses
$serverIP = "127.0.0.1" # server IP (do not change if script runs on same server)
$processLiF = "ddctd_cm_yo_server"
$processError = "werfault"
$log = "C:\Server\Logs\Life_is_Feudal\aliveCheck.txt"
### edit end ###
### email settings start ### comment out this section if not used
# $emailPath = "C:\Server\Tools\send_email.ps1" # path to send_mail script
# $sender = "Primus LiF Status <yourmail@address.com>" # your sender name and email
# $subject = "LiF Server Crash" # what in subject line is shown
# $email = "Your Life is Feudal Server has crashed.`nTime: " + (Get-Date).tostring() # your error message
### email settings end ###
$lifProcess = Get-Process | Where-Object { $_.ProcessName -eq $processLiF }
$errorProcess = Get-Process | Where-Object { $_.ProcessName -eq $processError }
$LiF_response = $lifProcess.Responding
if($lifProcess -eq $null){
echo "Server not running"
# do nothing
}else{
if($lifProcess.mainWindowTitle.Contains("players")){
# Server should be running and ready to connect to, do ping check
$udpClient = New-Object System.Net.Sockets.UdpClient
$pingBuf = New-Object Byte[] -ArgumentList 1
$pingBuf[0] = 14
$udpClient.Connect($serverIP,$port)
$udpClient.Client.ReceiveTimeout=2000
$udpClient.Send($pingBuf,1) | Out-Null
$udpRecIP= New-Object System.Net.IPEndPoint([System.Net.IPAddress]::Any, 0)
try{
$recv = $udpClient.Receive([ref]$udpRecIP)
$pingCheck = "OK"
}
catch{
$pingCheck = "ERROR"
}
if($pingCheck -eq "OK"){
echo "Server is responding."
# do nothing
}else{
# &$emailPath -sender $sender -subject $subject -message $email # send email via mail script; comment out if not used
$error = (Get-Date).tostring() + " Error: Kill LiF-Server and restart."
echo $error
Add-Content $log $error
if($errorProcess -ne $null){ # not equal, therefore errorPorcess exists
kill -processname $processerror
}
kill -processname $processLiF
Start-Process $app $arguments
}
}else{
echo "Server is probably starting."
# do nothing
}
}
echo Sicherung Datenbank 'LiF_1'
for /f "tokens=1-3 delims=. " %%a in ('date/t') do set tag=%%a&set monat=%%b&set jahr=%%c
for /f "tokens=1-3 delims=: " %%d in ('time/t') do set hour=%%d&set minute=%%e
set ZEIT=%hour%%minute%
set DATUM=%jahr%%monat%%tag%
steamcmd +login BENUTZERNAME PASSWORT +force_install_dir C:\Server\LifeIsFeudalServer +app_update 320850 +quit
### edit start ###
$steamUser = "USERNAME" # your Steam username
$steamPassword = "PASSWORD" # your Steam password
$checkPath = "C:\Server\zzz_LifeIsFeudalServer_updatecheck" # path to second LiF installation for check purpose only
$updatePath = "C:\Server\LifeIsFeudalServer" # your actual LiF server path
$steamCMD = "C:\Server\steamcmd\steamcmd.exe" # path to steamCMD.exe
$log = "C:\Server\Logs\Life_is_Feudal\updates.txt" # path to log file; comment line 56 and 63 out if not wanted!
$serverArguments = "-worldID 1" # for starting the right world when server restarts after update
### edit end ###
# build paths for steamCMD
$argumentsCheck = "+login " + $steamUser + " " + $steamPassword + " +force_install_dir " + $checkPath + " +app_update 320850 +quit"
$argumentsDoUpdate = "+login " + $steamUser + " " + $steamPassword + " +force_install_dir " + $updatePath + " +app_update 320850 +quit"
$loginCheck = "Logged in OK" # needed to check if steamCMD has connection
$updateCheck = "already up to date" # needed to check if server is up to date
$processLiF = "ddctd_cm_yo_server" # needed to check if server is running and stop it
$server = $updatePath + "\ddctd_cm_yo_server.exe" # build path for restart
# build steamCMD process to catch its output
$check = New-Object System.Diagnostics.ProcessStartInfo
$check.FileName = $steamCMD
$check.Arguments = $argumentsCheck
$check.UseShellExecute = $false
$check.CreateNoWindow = $true
$check.RedirectStandardOutput = $true
$checkProcess = New-Object System.Diagnostics.Process
$checkProcess.StartInfo = $check
echo "Checking Life is Feudal server for updates."
$checkProcess.Start() | Out-Null # start the process
$checkProcess.WaitForExit() # waits to end process
$checkResult = $checkProcess.StandardOutput.ReadToEnd() # read output from checkProcess
if ($checkResult.Contains($loginCheck)) { # check if connection OK
if ($checkResult.Contains($updateCheck)) { # check output for $updateCheck string
echo "Already up to date!"
$msg = (Get-Date).tostring() + " Server already up to date."
#Add-Content $log $msg # uncomment if you want this info in your log.
} else {
echo "New update available!"
Write-Host "Server is running: " -NoNewLine
$p = Get-Process | Where-Object { $_.ProcessName -eq $processLiF }
$LiF_alive = $p.Responding
if($LiF_alive){
Write-Host "yes"
echo "stopping server"
Stop-Process -processname $ProcessLiF
Wait-Process -name $ProcessLiF
echo "server stopped"
}else{
Write-Host "no"
}
echo "start update"
Start-Process $steamCMD $argumentsDoUpdate -NoNewWindow -Wait # starts actual update
$msg = (Get-Date).tostring() + " Server updated."
Add-Content $log $msg # comment this line out if you want no log file
echo "Starting Life is Feudal server."
Start-Process $server $serverArguments # restarts server
}
}else{
$msg = (Get-Date).tostring() + " steamCMD had no working connection."
Add-Content $log $msg # comment this line out if you want no log file
}
Illnux wrote:Hallo zusammen,
erst mal, vielen Dank SGoldberg! Schöne Anleitung!
Ich hatte jedoch das gleiche Problem wie AliAladin.
Unter Windows Server 2012 Standard bekam ich ebenfalls den "Es kann kein Prozess mit dem Namen "werfault" gefunden werden." Fehler.
Daraufhin hab ich angefangen ein wenig mit deiner Vorlage rumzubasteln.
@echo off
echo Sicherung Datenbank 'LiF_1'
for /f "tokens=1-3 delims=. " %%a in ('date/t') do set tag=%%a&set monat=%%b&set jahr=%%c
for /f "tokens=1-3 delims=: " %%d in ('time/t') do set hour=%%d&set minute=%%e
set ZEIT=%hour%%minute%
set DATUM=%jahr%%monat%%tag%
"C:\Server\MariaDB 5.5(x64)\bin\mysqldump" -u<user> -p<passwort> LiF_1 > C:\Server\Backup\Life_is_Feudal\LiF_1_%DATUM%_%ZEIT%.sql
"C:\Program Files\7-Zip\7z.exe" a -mx9 -tzip C:\Server\Backup\Life_is_Feudal\LiF_1_%DATUM%_%ZEIT%.zip "C:\Server\Backup\Life_is_Feudal\LiF_1_%DATUM%_%ZEIT%.sql"
del C:\Server\Backup\Life_is_Feudal\LiF_1_%DATUM%_%ZEIT%.sql
"C:\Server\MariaDB 5.5(x64)\bin\mysqldump" -u<user> -p<passwort> LiF_1 > C:\Server\Backup\Life_is_Feudal\LiF_1_%DATUM%_%ZEIT%.sql
"C:\Program Files\7-Zip\7z.exe"
"C:\Program Files\7-Zip\7z.exe" a -mx9 -tzip C:\Server\Backup\Life_is_Feudal\LiF_1_%DATUM%_%ZEIT%.zip "C:\Server\Backup\Life_is_Feudal\LiF_1_%DATUM%_%ZEIT%.sql"
@echo off
echo Sicherung Datenbank 'lif_1'
for /f "tokens=1-3 delims=. " %%a in ('date/t') do set tag=%%a&set monat=%%b&set jahr=%%c
for /f "tokens=1-3 delims=: " %%d in ('time/t') do set hour=%%d&set minute=%%e
set ZEIT=%hour%%minute%
set DATUM=%jahr%%monat%%tag%
"C:\Program Files\MariaDB 5.5\bin\mysqldump" -uroot -pMEINPASSWORT lif_1 > C:\lif_tools\Backup\Life_is_Feudal\LiF_1_%DATUM%_%ZEIT%.sql
"C:\Program Files\7-Zip\7z.exe" a -mx9 -tzip C:\lif_tools\Backup\Life_is_Feudal\LiF_1_%DATUM%_%ZEIT%.zip "C:\lif_tools\Backup\Life_is_Feudal\lif_1_%DATUM%_%ZEIT%.sql"
del C:\lif_tools\Backup\Life_is_Feudal\LiF_1_%DATUM%_%ZEIT%.sql
"C:\Program Files\MariaDB 5.5\bin\mysqldump" -uroot -pcesqlol lif_1 >
### edit start ###
$app = "C:\Server\LifeIsFeudalServer\ddctd_cm_yo_server.exe"
$arguments = "-worldID 1"
$processLiF = "ddctd_cm_yo_server"
### edit end ###
$lifProcess = Get-Process | Where-Object { $_.ProcessName -eq $processLiF }
if($lifProcess -eq $null){
echo "Server not running"
echo "Start server"
Start-Process $app $arguments # Server wird gestartet
}else{
echo "Server is running"
echo "Kill server"
kill -processname $processLiF
echo "Restart server"
Start-Process $app $arguments
}
$runServer1 = Start-Process $app $arguments
$runServer1.Id
kill $runServer1.Id
$runServer1 = Start-Process $app $arguments
Start-Sleep -s 300
Nathorus wrote:Hallo Illnux,
es funktioniert bisher alles, nur das mit der Datenbank automatisch sichern noch nicht, das geht immer noch nicht.
Keine Sorge das ist nur ein Beispiel gewesen das Passwort, hatte die ganze Zeit ein anderes drin.
Grüße Nathorus
"C:\Program Files\MariaDB 5.5\bin\mysqldump.exe" -uroot -p<password> --port=3307 lif_1 > D:\lif_tools\DB_sicherung\lif_1_%DATUM%_%ZEIT%.sql