Compare commits

...

10 Commits

Author SHA1 Message Date
Marcel Hanraets
56278230ed Removed "Features", completed "Usage" 2014-07-22 18:00:32 +02:00
Marcel Hanraets
2997256a6d Changed config location
Renamed config -> craftbukkit.conf
2014-07-18 20:05:44 +02:00
Marcel Hanraets
5e0aaac911 Updated README 2014-07-18 20:02:09 +02:00
Marcel Hanraets
886400467e Fixed help description 2014-07-18 19:52:25 +02:00
Marcel Hanraets
1d420347b5 Fixed indentation 2014-07-18 19:50:20 +02:00
Marcel Hanraets
26e4646b2e Fixed a lot of bugs, added colors 2014-07-18 19:46:40 +02:00
Marcel Hanraets
58a66b13d1 Added date to logs 2014-07-18 19:46:00 +02:00
Marcel Hanraets
16d4b94709 Added craftmin.sh 2014-07-18 19:12:02 +02:00
Marcel Hanraets
e6b6eeb8f4 Created configuration file 2014-07-18 19:07:54 +02:00
Marcel Hanraets
c7918c461e Moved Configuration to seperate file 2014-07-18 19:06:52 +02:00
5 changed files with 135 additions and 22 deletions

View File

@ -1,29 +1,49 @@
# Craftmin
A collection of script to configure and manage a CraftBukkit Minecraft server.
A collection of scripts to configure and manage a CraftBukkit Minecraft server.
### Files
| Filename | Description |
| ---------------- | ---------------------------- |
| `craftbukkit.sh` | Init script |
| `bukkit-log.xml` | Server log configuration |
| `craftmin.sh` | CraftBukkit management script|
### Features
TBC
| Filename | Description |
| ------------------ | ----------------------------- |
| `craftbukkit.sh` | Init script |
| `craftmin.sh` | CraftBukkit management script |
| `craftbukkit.conf` | Configuration file |
| `bukkit-log.xml` | Server log configuration |
### Requirements
- tmux
- sysvinit (systemd is currently not supported)
- sudo
### Setup
1. Edit the configuration to your linking
1. Edit `craftbukkit.conf` to your liking
2. Install the init script:
mv craftbukkit.sh /etc/init.d/craftbukkit
chmod 755 /etc/init.d/craftbukkit
update-rc.d craftbukkit defaults
3. Install `craftmin.sh`:
mv craftmin.sh /usr/local/bin/craftmin
chmod 755 /usr/local/bin/craftmin
4. Move the configuration file in place:
mv config /etc/craftbukkit.conf
### Usage
craftmin {console|backup|full-backup|wl-add|wl-rm}
#### Command description:
- **console**: Connects to the tmux console
- **backup**: Creates a world backup
- **full-backup**: Creates a full backup
- **wl-add [USER]**: Adds [USER] to the whitelist
- **wl-rm [USER]** Removes [USER] from the whitelist
- **--help**, **-h**: Shows a short help message

View File

@ -3,10 +3,10 @@
<Appenders>
<Console name="WINDOWS_COMPAT" target="SYSTEM_OUT"></Console>
<Queue name="TerminalConsole">
<PatternLayout pattern="[%d{HH:mm:ss} %level]: %msg%n" />
<PatternLayout pattern="[%d{dd.MM.yy HH:mm:ss} %level]: %msg%n" />
</Queue>
<RollingRandomAccessFile name="File" fileName="logs/server.log" filePattern="logs/server-%d{dd-MM-yyyy}.log.gz">
<PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level]: %replace{%msg}{\x1B\[([0-9]{1,2}(;[0-9]{1,2})*)?[m|K]}{}%n" />
<PatternLayout pattern="[%d{dd.MM.yy HH:mm:ss}] [%t/%level]: %replace{%msg}{\x1B\[([0-9]{1,2}(;[0-9]{1,2})*)?[m|K]}{}%n" />
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
</Policies>

8
craftbukkit.conf Normal file
View File

@ -0,0 +1,8 @@
# Configuration for CraftBukkit
USER="craftbukkit"
SRVPATH="/opt/craftbukkit"
WORLDPATH="${SRVPATH}/world"
JAVAOPTS="-d64 -server -Xms1G -Xmx4G -XX:+UseG1GC -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:TargetSurvivorRatio=90 -XX:MaxGCPauseMillis=200 -XX:MaxPermSize=256m -Dlog4j.configurationFile=bukkit-log.xml"
JARNAME="craftbukkit.jar"
JAROPTS="--universe ${WORLDPATH}"
# Config END

View File

@ -9,18 +9,12 @@
# Description: Craftbukkit Minecraft Server
### END INIT INFO
# Config START
USER="craftbukkit"
SRVPATH="/opt/craftbukkit"
WORLDPATH="/opt/craftbukkit/world"
JAVAOPTS="-d64 -server -Xms1G -Xmx4G -XX:+UseG1GC -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:TargetSurvivorRatio=90 -XX:MaxGCPauseMillis=200 -XX:MaxPermSize=256m -Dlog4j.configurationFile=bukkit-log.xml"
JARNAME="craftbukkit.jar"
JAROPTS="--universe ${WORLDPATH}"
# Config END
# We want LSB functions here
. /lib/lsb/init-functions
# Load configuration variables
. /etc/craftbukkit.conf
server_running() {
if [ -z "$(pgrep -f -n $JARNAME)" ]; then
return 1

91
craftmin.sh Normal file
View File

@ -0,0 +1,91 @@
#!/bin/bash
# Load configuration variables
. /etc/craftbukkit.conf
# Some colors
red='\033[0;31m'
orange='\033[0;33m'
green='\033[0;32m'
cyan='\033[0;36m'
NC='\033[0m'
server_running() {
if [ -z "$(pgrep -f -n $JARNAME)" ]; then
return 1
else
return 0
fi
}
case "$1" in
console)
if server_running; then
sudo -u ${USER} tmux attach -t craftbukkit-console
else
echo -e "[]${orange}warn${NC}] No server running ... ${orange}(warning).${NC}"
exit 7
fi
;;
backup)
# @TODO
;;
full-backup)
# @TODO
;;
wl-add)
if server_running; then
if [ $# -gt 1 ] && [ $# -lt 3 ]; then
shift
sudo -u ${USER} -H tmux send-keys -t craftbukkit-console "whitelist add ${1}" C-m >/dev/null 2>&1
sudo -u ${USER} -H tmux send-keys -t craftbukkit-console "whitelist reload" C-m >/dev/null 2>&1
else
echo -e "[${cyan}info${NC}] Usage: $0 $1 [USER]"
exit 1
fi
else
echo -e "[${orange}warn${NC}] No server running ... ${orange}(warning).${NC}"
exit 7
fi
;;
wl-rm)
if server_running; then
if [ $# -gt 1 ] && [ $# -lt 3 ]; then
shift
sudo -u ${USER} -H tmux send-keys -t craftbukkit-console "whitelist remove ${1}" C-m >/dev/null 2>&1
sudo -u ${USER} -H tmux send-keys -t craftbukkit-console "whitelist reload" C-m >/dev/null 2>&1
else
echo -e "[${cyan}info${NC}] Usage: $0 $1 [USER]"
exit 1
fi
else
echo -e "[${orange}warn${NC}] No server running ... ${orange}(warning).${NC}"
exit 7
fi
;;
--help|-h)
echo -e "[${cyan}info${NC}] Usage: $0 COMMAND"
echo
echo "Available commands:"
echo -e " console \t Connects to the console"
echo -e " backup \t Creates a world backup"
echo -e " full-backup \t Creates a full backup"
echo -e " wl-add [USER]\t Adds [USER] to the whitelist"
echo -e " wl-rm [USER]\t Removes [USER] from the whitelist"
echo -e " --help, -h \t Shows this help"
;;
*)
echo -e "[${cyan}info${NC}] No such command"
echo -e "[${cyan}info${NC}] Usage: $0 {console|backup|full-backup|wl-add|wl-rm}"
echo -e "[${cyan}info${NC}] Or try $0 --help for help"
exit 1
;;
esac
exit 0