Ich hatte das selbe Problem mit einem Server.
https://forum.netcup.de/admini…ft-startscript/#post61837
ich hatte dieses Script geschrieben und meine Prüfung mit einem CronJob erledigt.
Danke und Gruß
ASJoker
Ich hatte das selbe Problem mit einem Server.
https://forum.netcup.de/admini…ft-startscript/#post61837
ich hatte dieses Script geschrieben und meine Prüfung mit einem CronJob erledigt.
Danke und Gruß
ASJoker
Hallo,
schauste du Hier
Ich stand mit der Email vorm selben problem.
Habe als Crone ne routine eingebaut
Gruß ASJoker
Deine Dateien gehören der Gruppe root. Sollte geändert werden.
ich gehe davon aus das Teamspeak nicht dazugehört.
das -c ist wichtig: c=change
Noch nen kleiner Sicherheitstip: wenn du als Root den Nutzer eingerichtet hast dann logge dich in diesen ein uns erstelle alle Ordner und dateien.
Und warum möchtest du in den ordner tsdns
sollte reichen
Als "Done" makiert.
Hallo zusammen,
habe nun das Script mit der Hilfe meines Mitschreibers fertig.
Will euch das Werk nicht vorenthalten.
#!/bin/bash
# /etc/init.d/minecraftftb
# version 0.3.9 2012-08-13 (YYYY-MM-DD)
### BEGIN INIT INFO
# Provides: minecraft
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# Should-Start: $network
# Should-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Minecraft server
# Description: Starts the minecraft server
### END INIT INFO
#Settings
SERVICE='FTBServer-1.6.4-965.jar'
OPTIONS='nogui'
USERNAME='minecraftftb'
WORLD='world'
MCPATH='/home/minecraftftb'
BACKUPPATH='/home/minecraftftb/minecraft.backup'
EMAIL='xx@xx.com'
MAXHEAP=6144
MINHEAP=6144
HISTORY=2048
CPU_COUNT=2
INVOCATION="java -Xmx${MAXHEAP}M -Xms${MINHEAP}M -XX:+UseConcMarkSweepGC \
-XX:+CMSIncrementalPacing -XX:ParallelGCThreads=$CPU_COUNT -XX:PermSize=256M \
-jar $SERVICE $OPTIONS"
ME=`whoami`
as_user() {
if [ $ME == $USERNAME ] ; then
bash -c "$1"
else
su - $USERNAME -c "$1"
fi
}
mc_start() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
echo "$SERVICE is already running!"
else
echo "Starting $SERVICE..."
cd $MCPATH
as_user "cd $MCPATH && screen -h $HISTORY -dmS minecraft $INVOCATION"
sleep 7
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
echo "$SERVICE is now running."
else
echo "Error! Could not start $SERVICE!"
fi
fi
}
mc_saveoff() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
echo "$SERVICE is running... suspending saves"
as_user "screen -p 0 -S minecraft -X eval 'stuff "say SERVER BACKUP STARTING. Server going readonly..."\015'"
as_user "screen -p 0 -S minecraft -X eval 'stuff "save-off"\015'"
as_user "screen -p 0 -S minecraft -X eval 'stuff "save-all"\015'"
sync
sleep 10
else
echo "$SERVICE is not running. Not suspending saves."
fi
}
mc_saveon() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
echo "$SERVICE is running... re-enabling saves"
as_user "screen -p 0 -S minecraft -X eval 'stuff "save-on"\015'"
as_user "screen -p 0 -S minecraft -X eval 'stuff "say SERVER BACKUP ENDED. Server going read-write..."\015'"
else
echo "$SERVICE is not running. Not resuming saves."
fi
}
mc_stop() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
echo "Stopping $SERVICE"
as_user "screen -p 0 -S minecraft -X eval 'stuff "say SERVER SHUTTING DOWN IN 10 SECONDS. Saving map..."\015'"
as_user "screen -p 0 -S minecraft -X eval 'stuff "save-all"\015'"
sleep 10
as_user "screen -p 0 -S minecraft -X eval 'stuff "stop"\015'"
sleep 7
else
echo "$SERVICE was not running."
fi
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
echo "Error! $SERVICE could not be stopped."
else
echo "$SERVICE is stopped."
fi
}
mc_info() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
as_user "screen -p 0 -S minecraft -X eval 'stuff "say §4This Server will be restarted every 8 hours and make a Backup"\015'"
else
echo "$SERVICE was not running."
fi
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
echo "Restart announced."
else
echo "Announcment dont work."
fi
}
mc_update() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
echo "$SERVICE is running! Will not start update."
else
as_user "cd $MCPATH && wget -q -O $MCPATH/versions http://s3.amazonaws.com/Minecraft.Download/versions/versions.json"
snap=`awk -v linenum=3 'NR == linenum {print; exit}' "$MCPATH/versions"`
snapVersion=`echo $snap | awk -F'"' '{print $4}'`
re=`awk -v linenum=4 'NR == linenum {print; exit}' "$MCPATH/versions"`
reVersion=`echo $re | awk -F'"' '{print $4}'`
as_user "rm $MCPATH/versions"
if [ "$1" == "snapshot" ]; then
MC_SERVER_URL=http://s3.amazonaws.com/Minecraft.Download/versions/$snapVersion/minecraft_server.$snapVersion.jar
else
MC_SERVER_URL=http://s3.amazonaws.com/Minecraft.Download/versions/$reVersion/minecraft_server.$reVersion.jar
fi
as_user "cd $MCPATH && wget -q -O $MCPATH/minecraft_server.jar.update $MC_SERVER_URL"
if [ -f $MCPATH/minecraft_server.jar.update ]
then
if `diff $MCPATH/$SERVICE $MCPATH/minecraft_server.jar.update >/dev/null`
then
echo "You are already running the latest version of $SERVICE."
else
as_user "mv $MCPATH/minecraft_server.jar.update $MCPATH/$SERVICE"
echo "Minecraft successfully updated."
fi
else
echo "Minecraft update could not be downloaded."
fi
fi
}
mc_backup() {
mc_saveoff
NOW=`date "+%Y-%m-%d_%Hh%M"`
BACKUP_FILE="$BACKUPPATH/${WORLD}_${NOW}.tar"
echo "Backing up minecraft world..."
#as_user "cd $MCPATH && cp -r $WORLD $BACKUPPATH/${WORLD}_`date "+%Y.%m.%d_%H.%M"`"
as_user "tar -C "$MCPATH" -cf "$BACKUP_FILE" $WORLD"
echo "Backing up $SERVICE"
as_user "tar -C "$MCPATH" -rf "$BACKUP_FILE" $SERVICE"
#as_user "cp "$MCPATH/$SERVICE" "$BACKUPPATH/minecraft_server_${NOW}.jar""
mc_saveon
echo "Compressing backup..."
as_user "gzip -f "$BACKUP_FILE""
echo "Done."
}
mc_command() {
command="$1";
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
pre_log_len=`wc -l "$MCPATH/logs/latest.log" | awk '{print $1}'`
echo "$SERVICE is running... executing command"
as_user "screen -p 0 -S minecraft -X eval 'stuff "$command"\015'"
sleep .1 # assumes that the command will run and print to the log file in less than .1 seconds
# print output
tail -n $[`wc -l "$MCPATH/logs/latest.log" | awk '{print $1}'`-$pre_log_len] "$MCPATH/logs/latest.log"
fi
}
#Start-Stop here
case "$1" in
start)
mc_start
;;
stop)
mc_stop
;;
restart)
mc_stop
mc_start
;;
update)
mc_stop
mc_backup
mc_update $2
mc_start
;;
backup)
mc_backup
;;
status)
if pgrep -u $USERNAME -f $SERVICE > /dev/null-
then
echo "$SERVICE is running."
else
echo "$SERVICE is not running."
fi
;;
check)
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
echo "$SERVICE is running. All is fine"
else
echo "$SERVICE is not running. Will be started now and send a log."
echo "ServerLogs werden versendet."
as_user dmesg | tail -n 100 $MCPATH/server.log | mailx -s "Minecraft ServerLog" $EMAIL
as_user dmesg | tail -n 100 $MCPATH/ForgeModLoader-server-0.log | mailx -s "Minecraft ForgeServerLog 0" $EMAIL
as_user dmesg | tail -n 100 $MCPATH/ForgeModLoader-server-1.log | mailx -s "Minecraft ForgeServerLog 1" $EMAIL
as_user dmesg | tail -n 100 $MCPATH/ForgeModLoader-server-2.log | mailx -s "Minecraft ForgeServerLog 2" $EMAIL
mc_start
fi
;;
info)
mc_info
;;
command)
if [ $# -gt 1 ]; then
shift
mc_command "$*"
else
echo "Must specify server command (try 'help'?)"
fi
;;
*)
echo "Usage: $0 {start|stop|update|backup|status|restart|info|check|command "server command"}"
exit 1
;;
esac
exit 0
Alles anzeigen
nachdem ich gemerkt habe das die ForgeModLoader-server-*.log alle beschrieben werden habe ich die logs für alle 3 gesendet.
Hier nochmal meine beiden Crons zu dem Script.
0,30 3 * * * /etc/init.d/minecraftftb backup
*/10 * * * * /etc/init.d/minecraftftb check << bei Wartung sollte diese Zeile Auskommentiert werden, sonst geht der Server wieder an xD.
Bei fragen gerne fragen.
Danke und Gruß ASJoker
soweit so gut läuft
dmesg | tail -n 50 server.log | mailx -s "ServerLog" xx@xx.com
die Zeile ist kein Problem,
ich habe nur das Problem das die 2. Logdatei
ForgeModLoader-server-X.log
bei jedem Serverstart neu erzeugt wird.
Jetzt kann ich die alte einfach löschen, ist aber ungünstig weil weg.
ich könnte gucken welche am neusten ist oder einfach hochzählen lassen. Aber auch da fehlt mir die Codefertigkeit.
Danke und Gruß
Hallo danke für deine Ideen :), manchmal braucht man ein 2. Hirn.
#!/bin/bash
# /etc/init.d/minecraftftb
# version 0.3.9 2012-08-13 (YYYY-MM-DD)
### BEGIN INIT INFO
# Provides: minecraft
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# Should-Start: $network
# Should-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Minecraft server
# Description: Starts the minecraft server
### END INIT INFO
#Settings
SERVICE='FTBServer-1.6.4-965.jar'
OPTIONS='nogui'
USERNAME='minecraftftb'
WORLD='world'
MCPATH='/home/minecraftftb'
BACKUPPATH='/home/minecraftftb/minecraft.backup'
MAXHEAP=6144
MINHEAP=6144
HISTORY=2048
CPU_COUNT=2
INVOCATION="java -Xmx${MAXHEAP}M -Xms${MINHEAP}M -XX:+UseConcMarkSweepGC \
-XX:+CMSIncrementalPacing -XX:ParallelGCThreads=$CPU_COUNT -XX:PermSize=256M \
-jar $SERVICE $OPTIONS"
ME=`whoami`
as_user() {
if [ $ME == $USERNAME ] ; then
bash -c "$1"
else
su - $USERNAME -c "$1"
fi
}
mc_start() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
echo "$SERVICE is already running!"
else
echo "Starting $SERVICE..."
cd $MCPATH
as_user "cd $MCPATH && screen -h $HISTORY -dmS minecraft $INVOCATION"
sleep 7
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
echo "$SERVICE is now running."
else
echo "Error! Could not start $SERVICE!"
fi
fi
}
mc_saveoff() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
echo "$SERVICE is running... suspending saves"
as_user "screen -p 0 -S minecraft -X eval 'stuff "say SERVER BACKUP STARTING. Server going readonly..."\015'"
as_user "screen -p 0 -S minecraft -X eval 'stuff "save-off"\015'"
as_user "screen -p 0 -S minecraft -X eval 'stuff "save-all"\015'"
sync
sleep 10
else
echo "$SERVICE is not running. Not suspending saves."
fi
}
mc_saveon() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
echo "$SERVICE is running... re-enabling saves"
as_user "screen -p 0 -S minecraft -X eval 'stuff "save-on"\015'"
as_user "screen -p 0 -S minecraft -X eval 'stuff "say SERVER BACKUP ENDED. Server going read-write..."\015'"
else
echo "$SERVICE is not running. Not resuming saves."
fi
}
mc_stop() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
echo "Stopping $SERVICE"
as_user "screen -p 0 -S minecraft -X eval 'stuff "say SERVER SHUTTING DOWN IN 10 SECONDS. Saving map..."\015'"
as_user "screen -p 0 -S minecraft -X eval 'stuff "save-all"\015'"
sleep 10
as_user "screen -p 0 -S minecraft -X eval 'stuff "stop"\015'"
sleep 7
else
echo "$SERVICE was not running."
fi
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
echo "Error! $SERVICE could not be stopped."
else
echo "$SERVICE is stopped."
fi
}
mc_update() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
echo "$SERVICE is running! Will not start update."
else
as_user "cd $MCPATH && wget -q -O $MCPATH/versions http://s3.amazonaws.com/Minecraft.Download/versions/versions.json"
snap=`awk -v linenum=3 'NR == linenum {print; exit}' "$MCPATH/versions"`
snapVersion=`echo $snap | awk -F'"' '{print $4}'`
re=`awk -v linenum=4 'NR == linenum {print; exit}' "$MCPATH/versions"`
reVersion=`echo $re | awk -F'"' '{print $4}'`
as_user "rm $MCPATH/versions"
if [ "$1" == "snapshot" ]; then
MC_SERVER_URL=http://s3.amazonaws.com/Minecraft.Download/versions/$snapVersion/minecraft_server.$snapVersion.jar
else
MC_SERVER_URL=http://s3.amazonaws.com/Minecraft.Download/versions/$reVersion/minecraft_server.$reVersion.jar
fi
as_user "cd $MCPATH && wget -q -O $MCPATH/minecraft_server.jar.update $MC_SERVER_URL"
if [ -f $MCPATH/minecraft_server.jar.update ]
then
if `diff $MCPATH/$SERVICE $MCPATH/minecraft_server.jar.update >/dev/null`
then
echo "You are already running the latest version of $SERVICE."
else
as_user "mv $MCPATH/minecraft_server.jar.update $MCPATH/$SERVICE"
echo "Minecraft successfully updated."
fi
else
echo "Minecraft update could not be downloaded."
fi
fi
}
mc_backup() {
mc_saveoff
NOW=`date "+%Y-%m-%d_%Hh%M"`
BACKUP_FILE="$BACKUPPATH/${WORLD}_${NOW}.tar"
echo "Backing up minecraft world..."
#as_user "cd $MCPATH && cp -r $WORLD $BACKUPPATH/${WORLD}_`date "+%Y.%m.%d_%H.%M"`"
as_user "tar -C "$MCPATH" -cf "$BACKUP_FILE" $WORLD"
echo "Backing up $SERVICE"
as_user "tar -C "$MCPATH" -rf "$BACKUP_FILE" $SERVICE"
#as_user "cp "$MCPATH/$SERVICE" "$BACKUPPATH/minecraft_server_${NOW}.jar""
mc_saveon
echo "Compressing backup..."
as_user "gzip -f "$BACKUP_FILE""
echo "Done."
}
mc_command() {
command="$1";
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
pre_log_len=`wc -l "$MCPATH/logs/latest.log" | awk '{print $1}'`
echo "$SERVICE is running... executing command"
as_user "screen -p 0 -S minecraft -X eval 'stuff "$command"\015'"
sleep .1 # assumes that the command will run and print to the log file in less than .1 seconds
# print output
tail -n $[`wc -l "$MCPATH/logs/latest.log" | awk '{print $1}'`-$pre_log_len] "$MCPATH/logs/latest.log"
fi
}
#Start-Stop here
case "$1" in
start)
mc_start
;;
stop)
mc_stop
;;
restart)
mc_stop
mc_start
;;
update)
mc_stop
mc_backup
mc_update $2
mc_start
;;
backup)
mc_backup
;;
status)
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
echo "$SERVICE is running."
else
echo "$SERVICE is not running."
fi
;;
check)
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
echo "$SERVICE is running. All is fine"
else
echo "$SERVICE is not running. Will be started now."
mc_start
fi
;;
info)
mc_info
;;
command)
if [ $# -gt 1 ]; then
shift
mc_command "$*"
else
echo "Must specify server command (try 'help'?)"
fi
;;
*)
echo "Usage: $0 {start|stop|update|backup|status|restart|check|command "server command"}"
exit 1
;;
esac
exit 0
Alles anzeigen
Habe das Script um "check" erweitert, lasse das als Cron alle 10Minuten laufen.
Damit habe ich wieder mein Ziel nur eine Datei zu haben und mit prüfen ob Server gecrasht ist.
Kann ich das Script um die "Emailfunktion mit dem Report" erweitern. Wenn ja könnte ich da etwas Codehilfe brauchen.
Danke und Gruß ASJoker
Erstmal danke für die schnelle Antworrt, darf man ja nicht vergssen.
Das mit dem Cron ist nicht praktikabel für mich weil 60Email/h möchte ich nicht bekommen, habe das prinzip auch nicht ganz verstanden.
Das mit der Email und den letzen 50Logs ist ne gute Idee, würde ich aber nicht gecodet bekommen.
Das mit der Datei verstehe ich nicht ganz, versuche ja die beiden Codes oben zusammen zuführen.
Vielleicht noch als Info die Datei liegt im init.d und dient auch für meine Crons darüber steuer ich den Server.
Mein Ziel gerade ist es die beiden Scripts zusammenzuführen.
Aber du hast mich auf ne Idee für die Neustarts gebracht.11 Gecanceld, meine Leute töten mich wenn ich deren Chunks unloade xD
Danke und Gruß ASJoker
Du redest immer von mehreren Benutzern.
Wie meinst Du das denn? Gibt es mehr als einen Minecraft Linux Systemaccount?
Es gibt für den Server einen Benutzer. Und neben mir noch 2 User die Server starten/stopen etc. können. Ich habe einen den Rootzugriff die anderen beiden aber nicht. Die haben Ihre eigenen Nutzernamen.
Diese Nutzern können das Script benutzen aber sich nicht in den User minecraftftb einloggen. Gebern ungerne Passwörter raus). Würde heißen im Zweifel können die den Server nicht stoppen, da der immer wieder neugestartet wird.
Gruß ASJoker
Hallo zusammen,
ich habe gerade ein kleines Problem. Ich habe unseren MinecraftServer im Autostart von unserem VServer.
Der Autostart und das Script funktionieren auch wunderbar. Hier das Script für den Autostart und die Steuerung.
#!/bin/bash
# /etc/init.d/minecraftftb
# version 0.3.9 2012-08-13 (YYYY-MM-DD)
### BEGIN INIT INFO
# Provides: minecraft
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# Should-Start: $network
# Should-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Minecraft server
# Description: Starts the minecraft server
### END INIT INFO
#Settings
SERVICE='FTBServer-1.6.4-965.jar'
OPTIONS='nogui'
USERNAME='minecraftftb'
WORLD='world'
MCPATH='/home/minecraftftb'
BACKUPPATH='/media/remote.share/minecraft.backup'
MAXHEAP=6144
MINHEAP=6144
HISTORY=2048
CPU_COUNT=2
INVOCATION="java -Xmx${MAXHEAP}M -Xms${MINHEAP}M -XX:+UseConcMarkSweepGC \
-XX:+CMSIncrementalPacing -XX:ParallelGCThreads=$CPU_COUNT -XX:PermSize=256M \
-jar $SERVICE $OPTIONS"
ME=`whoami`
as_user() {
if [ $ME == $USERNAME ] ; then
bash -c "$1"
else
su - $USERNAME -c "$1"
fi
}
mc_start() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
echo "$SERVICE is already running!"
else
echo "Starting $SERVICE..."
cd $MCPATH
as_user "cd $MCPATH && screen -h $HISTORY -dmS minecraft ./ServerStart2.sh && screen -wipe"
sleep 7
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
echo "$SERVICE is now running."
else
echo "Error! Could not start $SERVICE!"
fi
fi
}
mc_saveoff() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
echo "$SERVICE is running... suspending saves"
as_user "screen -p 0 -S minecraft -X eval 'stuff "say SERVER BACKUP STARTING. Server going readonly..."\015'"
as_user "screen -p 0 -S minecraft -X eval 'stuff "save-off"\015'"
as_user "screen -p 0 -S minecraft -X eval 'stuff "save-all"\015'"
sync
sleep 10
else
echo "$SERVICE is not running. Not suspending saves."
fi
}
mc_saveon() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
echo "$SERVICE is running... re-enabling saves"
as_user "screen -p 0 -S minecraft -X eval 'stuff "save-on"\015'"
as_user "screen -p 0 -S minecraft -X eval 'stuff "say SERVER BACKUP ENDED. Server going read-write..."\015'"
else
echo "$SERVICE is not running. Not resuming saves."
fi
}
mc_stop() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
echo "Stopping $SERVICE"
as_user "screen -p 0 -S minecraft -X eval 'stuff "say SERVER SHUTTING DOWN IN 10 SECONDS. Saving map..."\015'"
as_user "screen -p 0 -S minecraft -X eval 'stuff "save-all"\015'"
sleep 10
as_user "screen -p 0 -S minecraft -X eval 'stuff "stop"\015'"
sleep 7
else
echo "$SERVICE was not running."
fi
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
echo "Error! $SERVICE could not be stopped."
else
echo "$SERVICE is stopped."
fi
}
mc_update() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
echo "$SERVICE is running! Will not start update."
else
as_user "cd $MCPATH && wget -q -O $MCPATH/versions http://s3.amazonaws.com/Minecraft.Download/versions/versions.json"
snap=`awk -v linenum=3 'NR == linenum {print; exit}' "$MCPATH/versions"`
snapVersion=`echo $snap | awk -F'"' '{print $4}'`
re=`awk -v linenum=4 'NR == linenum {print; exit}' "$MCPATH/versions"`
reVersion=`echo $re | awk -F'"' '{print $4}'`
as_user "rm $MCPATH/versions"
if [ "$1" == "snapshot" ]; then
MC_SERVER_URL=http://s3.amazonaws.com/Minecraft.Download/versions/$snapVersion/minecraft_server.$snapVersion.jar
else
MC_SERVER_URL=http://s3.amazonaws.com/Minecraft.Download/versions/$reVersion/minecraft_server.$reVersion.jar
fi
as_user "cd $MCPATH && wget -q -O $MCPATH/minecraft_server.jar.update $MC_SERVER_URL"
if [ -f $MCPATH/minecraft_server.jar.update ]
then
if `diff $MCPATH/$SERVICE $MCPATH/minecraft_server.jar.update >/dev/null`
then
echo "You are already running the latest version of $SERVICE."
else
as_user "mv $MCPATH/minecraft_server.jar.update $MCPATH/$SERVICE"
echo "Minecraft successfully updated."
fi
else
echo "Minecraft update could not be downloaded."
fi
fi
}
mc_backup() {
mc_saveoff
NOW=`date "+%Y-%m-%d_%Hh%M"`
BACKUP_FILE="$BACKUPPATH/${WORLD}_${NOW}.tar"
echo "Backing up minecraft world..."
#as_user "cd $MCPATH && cp -r $WORLD $BACKUPPATH/${WORLD}_`date "+%Y.%m.%d_%H.%M"`"
as_user "tar -C "$MCPATH" -cf "$BACKUP_FILE" $WORLD"
echo "Backing up $SERVICE"
as_user "tar -C "$MCPATH" -rf "$BACKUP_FILE" $SERVICE"
#as_user "cp "$MCPATH/$SERVICE" "$BACKUPPATH/minecraft_server_${NOW}.jar""
mc_saveon
echo "Compressing backup..."
as_user "gzip -f "$BACKUP_FILE""
echo "Done."
}
mc_command() {
command="$1";
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
pre_log_len=`wc -l "$MCPATH/logs/latest.log" | awk '{print $1}'`
echo "$SERVICE is running... executing command"
as_user "screen -p 0 -S minecraft -X eval 'stuff "$command"\015'"
sleep .1 # assumes that the command will run and print to the log file in less than .1 seconds
# print output
tail -n $[`wc -l "$MCPATH/logs/latest.log" | awk '{print $1}'`-$pre_log_len] "$MCPATH/logs/latest.log"
fi
}
#Start-Stop here
case "$1" in
start)
mc_start
;;
stop)
mc_stop
;;
restart)
mc_stop
mc_start
;;
update)
mc_stop
mc_backup
mc_update $2
mc_start
;;
backup)
mc_backup
;;
status)
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
echo "$SERVICE is running."
else
echo "$SERVICE is not running."
fi
;;
command)
if [ $# -gt 1 ]; then
shift
mc_command "$*"
else
echo "Must specify server command (try 'help'?)"
fi
;;
*)
echo "Usage: $0 {start|stop|update|backup|status|restart|command "server command"}"
exit 1
;;
esac
exit 0
Alles anzeigen
Jetzt haben wir aufgrund unserer Modvielfall das Problem das der Server gerne mal crasht, was jetzt nicht so dramatisch ist wenn ich zuhause bin, weil kann ich ja neustarten. Das Problem ist wenn ich nicht zuhause bin ist der Server offline. Also habe ich ein 2. Script, welches sich aber nur mit dem Nutzerselber ausführen lässt (Im Moment).
#!/bin/sh
while true
do
java -Xmx6144M -Xms6144M -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=2 -XX:PermSize=256M -jar FTBServer-1.6.4-965.jar -nogui
echo "If you want to completely stop the server process now, press Ctrl+C before
the time is up!"
echo "Rebooting in:"
for i in 5 4 3 2 1
do
echo "$i..."
sleep 1
done
echo "Rebooting now!"
done
Alles anzeigen
Die Startdatei öffnet das Script, das Problem: Wenn ich den Server über den ersten Code nun stoppen will startet der den Server auch neu, was ein bisschen ungünstig ist falls ich den Server mal wirklich stoppen will. Und Killen will ich den Prozess nicht einfach, weil das nicht alle User können.
Ich versuche gerade die beiden Scripts zu einem zu machen, gelingt mit auch soweit das ich den Server mit der "Neustart-Funktion" starten kann. Aber beim Stoppen will ich den ja nicht neustarten.
Ich bin gerade etwas damit überfordert das erste Script so umzubauen das der Server auch wirklich gestoppt wird.
Habt ihr eine Idee wie ich das bewerkstelligen kann.
Danke und Gruß ASJoker.
Ich hätte da mal eine Frage zu OpenPanel:
Kann man das auch rein zur Konfiguration der Firewall verwenden und die restlichen Dinge wie Domains oder E-Mail-Konten weiterhin von Hand direkt am Server machen? Ich würde solche Sachen immer gern selbst anpassen, dann weiß ich nämlich auch, was alles geändert wurde
Wäre super, wenn mir jemand diese Frage beantworten könnte.
Ich hätte da mal eine Frage zu OpenPanel:
Kann man das auch rein zur Konfiguration der Firewall verwenden und die restlichen Dinge wie Domains oder E-Mail-Konten weiterhin von Hand direkt am Server machen? Ich würde solche Sachen immer gern selbst anpassen, dann weiß ich nämlich auch, was alles geändert wurde
Wäre super, wenn mir jemand diese Frage beantworten könnte.
Klar gehr :), ist ja im Prinzip nur nen GUI.
Gruß ASJoker
Hallo zusammen,
hatte das Problem mit dem
Status: TLS/SSL-Verbindung hergestellt.
Antwort: 331 Please specify the password.
Befehl: PASS *********
Fehler: GnuTLS error -15: An unexpected TLS packet was received.
Fehler: Herstellen der Verbindung zum Server fehlgeschlagen
auch.
habe hier nen kleines Workaround
Dies hier der Sourcelist zufügen.
Dann zwei Zeilen in der Console.
aptitude update; aptitude install -t wheezy-updates debian-cyconet-archive-keyring vsftpd
echo "allow_writeable_chroot=YES" >> /etc/vsftpd.conf && /etc/init.d/vsftpd restart
Gruß ASjoker