ark-server-tools, 用于管理vault的服务器工具集

分享于 

26分钟阅读

GitHub

  繁體 雙語
Set of server tools used to manage ARK: Survival Evolved servers on Linux
  • 源代码名称:ark-server-tools
  • 源代码网址:http://www.github.com/FezVrasta/ark-server-tools
  • ark-server-tools源代码文档
  • ark-server-tools源代码下载
  • Git URL:
    git://www.github.com/FezVrasta/ark-server-tools.git
    Git Clone代码到本地:
    git clone http://www.github.com/FezVrasta/ark-server-tools
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/FezVrasta/ark-server-tools
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    : 生存的Linux服务器工具

    这里工具允许你管理任意方舟: 幸存的linux服务器不需要记住长的命令。 它提供了很多特性,以获得完整的清单检查的用法。

    安装

    先决条件

    ARK服务器工具需要安装某些软件包才能正常工作。

    如果在CentOS或者RHEL下运行,你将需要安装以下软件包:

    
    perl-Compress-Zlib
    
    
    curl
    
    
    lsof
    
    
    glibc.i686
    
    
    libstdc++.i686
    
    
    bzip2
    

    如果在Debian或者Ubuntu下运行,你将需要安装以下软件包:

    
    perl-modules
    
    
    curl
    
    
    lsof
    
    
    libc6-i386
    
    
    lib32gcc1
    
    
    bzip2
    

    通常应该安装的常见先决条件是:

    
    >=bash-4.0
    
    
    >=coreutils-7.6
    
    
    findutils
    
    
    perl
    
    
    rsync
    
    
    sed
    
    
    tar
    

    如果使用CentOS或者更早版本,或者Debian或者更早版本,你将需要编译一个较新的glibc版本。 请参见 https://github.com/FezVrasta/ark-server-tools/wiki/Install-of-required-versions-of-glibc-and-gcc-on-RHEL-CentOS

    要使用 ARK Server工具,你需要按照以下指南安装 SteamCMD:

    https://developer.valvesoftware.com/wiki/SteamCMD#Linux

    我们假设你已经创建了 steam 用户来存储steamcmd和你的vault服务器。

    要求

    要允许你的vault服务器与外部通信,你必须在防火墙中打开一些端口:

    iptables -I INPUT -p udp --dport 27016 -j ACCEPT
    iptables -I INPUT -p tcp --dport 27016 -j ACCEPT
    iptables -I INPUT -p udp --dport 7778 -j ACCEPT
    iptables -I INPUT -p tcp --dport 7778 -j ACCEPT
    iptables -I INPUT -p tcp --dport 32330 -j ACCEPT

    NB: 根据 arkmanager.cfg 文件中设置的设置更改端口。

    安装任务栏服务器工具

    要安装任务栏服务器工具,请运行以下命令:

    curl -sL http://git.io/vtf5N | sudo bash -s steam

    注意:如果不同于 steam,你可能需要更改 bash -s 参数以适应 Steam 用户。

    这将复制 arkmanager 脚本及其守护进程到适当的目录,并在 /var/log 服务器工具中创建一个空的日志目录。

    要执行用户安装任务栏服务器工具作为非特权用户,请运行以下命令:

    curl -sL http://git.io/vtf5N | bash -s -- --me

    配置

    存储在 /etc/arkmanager/arkmanager.cfg/etc/arkmanager/instances/<instancename>.cfg 你可以找到启动服务器所需的变量,如端口号。系统 环境变量 等等。

    你需要使用任何你希望给服务器的选项修改这些文件,并且你的环境中的任何路径( 比如 )。 其中一个常见的是appinfo缓存的路径)。

    请参阅配置文件选项。

    此外,在这些文件中,你可以指定要添加到ARK服务器的启动命令中的任何参数。 这些参数必须由 ark_ 字符串前缀,一些示例可以是:

    ark_SessionName="My ARK server"ark_MaxPlayers=50
    ark_ServerPVE=False
    ark_DifficultyOffset=1

    会话 NAME 可能不包含特殊字符( 例如。 [EU] Aw&some ARK ),因为它可能破坏启动命令。! 在这种情况下,你可能需要注释掉 ark_SessionName 变量,并在你的 GameUserSettings.ini 文件中定义它。

    若要指定不带参数的选项( 比如。 bRawSockets ),指定空参数( 比如。 ark_bRawSockets="" )。

    若要指定不带参数的划线选项( 比如。 -log ),添加带有 arkflag_ 前缀的option=""( 比如。 arkflag_log="" )。

    使用参数指定划线选项的步骤( 比如。 -StructureDestructionTag=DestroySwampSnowStructures ),添加带有 arkopt_ 前缀的option=value ( 比如。 arkopt_StructureDestructionTag=DestroySwampSnowStructures )。

    你可以在系统用户的主目录中覆盖或者添加特定系统用户的变量,创建名为 .arkmanager.cfg的文件。

    每个服务器实例都必须有自己的端口集。 这些端口是使用实例配置中的ark_Portark_QueryPortark_RCONPort 设置指定的。 如果在多个实例之间共享QueryPort或者端口设置,那么服务器通常会崩溃或者挂起,而不能够被查询。 如果RCONPort设置在多个实例之间共享,服务器将在 0/0 播放器上挂起。

    有关更多选项,请参见配置文件。

    安装任务栏服务器

    要安装任务栏服务器,请将这里命令作为正常用户运行:

    arkmanager install

    用法

    arkmanager [Global Options] <command> [Command Options] [Command Args] [Instances]

    全局选项

    --help

    打印有关使用命令的一些帮助

    --version

    打印arkmanager版本

    常见选项

    --verbose

    公开SteamCMD的输出

    --dots

    为进度打印点

    --spinner

    使用 Spinner 进行进程

    Instanceless命令

    upgrade-tools

    将vault服务器工具升级到最新版本

    uninstall-tools

    卸载任务栏服务器工具

    list-instances

    列出可用的实例

    --brief

    只打印具有实例名称的单行

    useconfig

    用于为以下命令指定实例的旧式命令

    remove-mods

    steamcmd workshop 目录中删除指定的插件

    命令在实例上执行

    以下所有命令使用 @instancename 参数来指定一个或者多个实例,并使用特殊的@all 实例选择所有实例。

    run

    运行服务器而不将它的放入后台

    start

    运行服务器并将它的放入后台

    --noautoupdate

    启用时禁用启动时自动更新

    --alwaysrestart

    启用即使服务器崩溃而不准备连接到播放机连接也自动重新启动服务器。

    stop

    如果服务器正在运行,则停止该服务器

    --warn

    警告服务器将要关闭的所有连接播放机

    --warnreason

    给出关闭的原因。 默认为 maintenance

    --saveworld

    使用 saveworld 拯救世界- 通常没有必要,因为服务器通常以优雅的关闭方式拯救世界

    restart

    运行 stop 命令,然后运行 restart 命令。 接受并传递这些命令的选项

    --warnreason

    给出重新启动的原因。 默认为 a restart

    install

    下载并安装vault服务器的( 或者验证现有安装)

    update

    更新方舟服务器的安装( 如果还未安装的话,安装它)

    --force

    跳过是否有可用更新的检查

    --safe

    只在服务器保存了过去一分钟后才关闭服务器

    --warn

    警告服务器要关闭的所有连接播放机进行更新

    --ifempty

    仅在没有连接时更新服务器

    --validate

    验证vault服务器安装

    --saveworld

    使用 saveworld 拯救世界- 通常没有必要,因为服务器通常以优雅的关闭方式拯救世界

    --update-mods

    更新所有已经安装的插件

    --backup

    更新前备份保存的世界和游戏配置

    --stagingdir=<dir>

    设置暂存目录以便在关闭服务器之前下载更新

    --downloadonly

    下载更新但不应用它。 仅在设置临时目录时才有效。

    --beta=<betaname>

    选择要安装的测试版( 使用 --beta=public 重置到 public 分支)。 请注意,切换分支时需要 --validate

    --betapassword=<password>

    使用密码解锁测试版(。密码锁定测试版)。

    cancelshutdown

    取消使用 --warn 选项运行的挂起的update/shutdown/restart

    checkupdate

    检查vault服务器更新是否可用

    checkmodupdate

    检查服务器上是否需要更新任何插件

    --revstatus

    反转退出代码,并为失败添加额外代码

    退出状态
    • 0: 更新可用,或者 workshop 文件丢失

    • 1: 没有可用的更新

    • 2: workshop 中缺少一个或者多个插件

    反转状态码
    • 0: 未更新 avaibale

    • 1: 更新可用

    • 2: workshop 中缺少一个或者多个插件

    • 3: appworkshop_346110.acf 丢失

    • 4: SteamCMD workshop 目录不存在

    installmods

    将实例配置中指定的所有插件安装到 ShooterGame/Content/Mods 目录

    uninstallmods

    删除 ShooterGame/Content/Mods 目录中的所有插件

    installmod <modnum>[,<modnum>[,...​]]

    将指定的插件安装到 ShooterGame/Content/Mods 目录中

    uninstallmod <modnum>[,<modnum>[,...​]]

    ShooterGame/Content/Mods 目录中删除指定的插件

    removemod <modnum>[,<modnum>[,...​]]

    从 SteamCMD workshop 目录中删除指定的插件

    reinstallmod <modnum>[,<modnum>[,...​]]

    运行 uninstallmod 命令,然后运行 installmod 命令

    enablemod <modnum>
    enablemod <modnum>=<modtype>

    启用实例配置中的arkmod_<modnum> 设置。 modtype默认为 game。Mod类型:

    game

    GameModIds 中的mod

    map

    MapModId mod

    tctotalconversion

    TotalConversionMod mod

    backup

    将保存的世界和游戏配置文件备份到配置中指定的备份目录中的压缩tar文件

    broadcast"message"

    使用 RCON broadcast 命令向连接到服务器的播放机广播消息

    saveworld

    使用 RCON saveworld 命令保存世界

    rconcmd"command"

    将指定的RCON命令发送到服务器并打印它的响应

    status

    打印任务栏服务器的状态

    install-cronjob <command>

    安装执行指定命令的cron作业。 这将接受指定命令接受的任何选项,以及下列选项。 为了向命令指定参数( 比如。 在 broadcast 命令中,使用 --arg=<arg> 选项。 如果某些实现不能接受分钟/小时 specification,请阅读你的man 5 crontab 手册manpage确定minute和小时值是有效的。

    --daily

    命令应该每天执行

    --hourly

    命令应在每小时执行一次

    --hour=<hour>

    指定命令应执行的一个或者多个小时。 这是作业的小时字段。 如果你希望命令每n 小时执行一次,则使用 --hour='/n'默认值: ( 例如。所有小时)

    --minute=<minute>

    指定命令执行时的一个或者多个分钟数。 这是作业的分钟字段。 如果要使命令每n 分钟执行一次,则使用 --minute='*/n' 默认值: 0 ( 例如,小时的第一分钟)

    --enable-output

    启用命令的输出- cron守护进程通常将这里邮件发送给在配置中指定的用户

    --arg=<arg>

    指定要传递给命令的参数

    remove-cronjob <command>

    删除以前由 install-cronjob 安装的cron作业

    配置文件

    全局配置

    全局配置存储在 /etc/arkmanager/arkmanager.cfg 和/或者 ~/.arkmanager.cfg 中。

    无法在实例配置文件中重写以下选项:

    arkstChannel

    指定升级vault服务器工具时要使用的释放通道( git branch )

    install_bindir
    install_libexecdir
    install_datadir

    设置由安装程序指定安装可执行文件和数据文件的位置

    configfile_<name>

    指向指定实例配置文件的路径

    defaultinstance

    如果未指定实例,则使用的默认实例

    steamcmd_user

    应在它的下运行工具的用户。 在用户安装的情况下,在 ~/.arkmanager.cfg 中设置为 --me

    可以在每个实例上覆盖以下选项:

    steamcmdroot

    安装 steamcmd的目录

    steamcmdexec

    steamcmd.sh 可执行文件

    steamcmd_appinfocache

    Steam 缓存文件的路径。 大多数系统在 $HOME/Steam/appcache/appinfo.vdf 中都有这个,但是有些系统却在 $HOME/.steam/appcache/appinfo.vdf 中。 如果需要,则需要修改这里设置。

    steamcmd_workshoplog

    Steam workshop 日志文件的路径。 大多数系统在 $HOME/Steam/logs/workshop_log.txt 中都有这个,但是有些系统却在 $HOME/.steam/logs/workshop_log.txt 中。 如果需要,则需要修改这里设置。

    steamdataroot

    SteamCMD数据的路径。 默认为 $steamcmdroot 某些SteamCMD安装存储下载的文件(。workshop 文件,等等 ) 在/home/.steam 中,而不是在SteamCMD目录中。

    steamworkshopdir

    SteamCMD workshop 目录的路径。 默认为 $steamdataroot/steamapps/workshop 某些SteamCMD安装使用 SteamApps 作为steamapps目录而不是 SteamApps

    arkserverexec

    可以找到vault服务器可执行文件的vault服务器安装中的相对路径。 对于标准的ARK服务器,这应该是 ShooterGame/Binaries/Linux/ShooterGameServer

    arkbackupdir

    存储备份的目录。 可以在实例配置中重写。

    arkwarnminutes

    关闭和更新警告应运行的分钟数

    arkautorestartfile

    ARK服务器安装中的相对路径,用于放置自动重新启动锁定文件

    arkAlwaysRestartOnCrash

    设置为 true 以启用即使服务器未准备好连接到播放机连接也自动重新启动。 请注意,如果崩溃原因未解决,这可以能导致服务器输入无限的崩溃重启循环。

    arkAutoUpdateOnStart

    设置为 true 以在服务器启动前启用更新

    arkBackupPreUpdate

    设置为 true 以在更新前启用自动备份

    arkStagingDir

    设置暂存目录以便在关闭服务器之前下载更新

    arkMaxBackupSizeMB

    限制存储备份的大小

    arkPriorityBoost

    尝试提高任务栏服务器的优先级。 负值的优先级更高,而正值则具有较低的优先级。 需要 sudorenice

    arkCpuAffinity

    尝试设置任务栏服务器的CPU关联。 设置是一个逗号分隔的处理器索引列表,服务器应该在其中运行。 需要 sudotaskset

    msgWarnUpdateMinutes
    msgWarnUpdateSeconds
    msgWarnRestartMinutes
    msgWarnRestartSeconds
    msgWarnShutdownMinutes
    msgWarnShutdownSeconds

    模板的模板化消息,其中 %d 被替换为 update/restart/shutdown 之前的分钟/秒数

    msgWarnReason
    msgTimeMinutes
    msgTimeSeconds
    msgReasonUpdateApp
    msgReasonUpdateMod
    msgReasonUpdateAppMod
    msgReasonRestart
    msgReasonShutdown

    带有以下替换参数的警告的备用模板消息:

    {reason}

    msgWarnReason 中有效,在运行时使用适当的msgReason* 模板替换

    {time}

    msgWarnReasonmsgReason* 中有效,在运行时用适当的msgTime* 模板替换

    {modnamesupdated}

    msgReason*Mod 中有效,在运行时用逗号分隔的mod名称列表替换

    {minutes}

    msgTimeMinutes 中有效,在运行时替换为分钟,直到关闭

    {seconds}

    msgTimeSeconds 中有效,在运行时被替换,剩余秒数直到关闭

    logdir

    指定存储日志文件的位置

    appid

    任务栏服务器的Steam AppID

    mod_appid

    方舟客户端的Steam AppID ( 用于下载插件)

    mod_branch

    要使用的Mod分支( Windows 或者 Linux )。 实际上,所有插件都使用 Windows 分支作为方舟服务器,而 Linux 分支几乎总是崩溃服务器

    vault服务器选项:

    serverMap

    服务器应使用的映射

    serverMapModId

    使用 -MapModID=<modid>?...​ 选项指定服务器映射 mod ID

    ark_<optname>="<optval>"

    指定传递给服务器的Map?Option=Val?...​ 选项字符串中使用的选项

    ark_<optname>=""

    指定没有值的选项- Map?Option?...​

    arkflag_<optname>=<anything>

    指定不带值的划线选项( 例如。 标志) - 比如 arkflag_DisableDeathSpectator=true 添加 -DisableDeathSpectator 标志

    arkopt_<optname>="<optval>"

    指定带有值的划线选项- 比如 arkopt_StructureDestructionTag=DestroySwampSnowStructures 添加 -StructureDestructionTag=DestroySwampSnowStructures 选项。

    实例配置文件

    实例配置文件存储在 /etc/arkmanager/instances/<instancename>.cfg , ~/.config/arkmanager/instances/<instancename>.cfg 或者按照全局配置中的configfile_<instancename> 选项中指定的。

    arkserverroot

    安装vault服务器的目录

    serverMap

    服务器应使用的映射

    serverMapModId

    使用 -MapModID=<modid>?...​ 选项指定服务器映射 mod ID

    ark_<optname>="<optval>"

    指定传递给服务器的Map?Option=Val?...​ 选项字符串中使用的选项

    ark_<optname>=""

    指定没有值的选项- Map?Option?...​

    arkflag_<optname>=<anything>

    指定不带值的划线选项( 例如。 标志) - 比如 arkflag_DisableDeathSpectator=true 添加 -DisableDeathSpectator 标志

    arkopt_<optname>="<optval>"

    指定带有值的划线选项- 比如 arkopt_StructureDestructionTag=DestroySwampSnowStructures 添加 -StructureDestructionTag=DestroySwampSnowStructures 选项。

    arkmod_<modnum>=<modtype>

    指定可以使用 enablemoddisablemod 启用或者禁用的mod。 注意,使用这些选项指定的mod,除了直接在 ark_GameModIds 选项中指定,并重写 ark_MapModId 中指定的。serverMapModark_TotalConversionMod 选项。 按照在实例配置文件中指定的顺序处理选项,并且不应用公共配置文件中的arkmod_* 选项。 Mod类型:

    game

    GameModIds 中指定的mod

    map

    要在 MapModId 中指定的mod

    tctotalconversion

    要在 TotalConversionMod 中指定的mod

    disabled

    禁用的mod

    公用ARK选项

    ark_TotalConversionId=<modid>

    指定要使用的总转换

    ark_GameModIds=<modid>,<modid>,...​

    指定要使用的Mod id

    ark_SessionName="<sessionname>"

    服务器应该在它的下声明自身的NAME

    ark_RCONEnabled="True"

    启用的RCON

    ark_RCONPort=<portnum>

    服务器在它的上侦听RCON命令的端口。 在主机上必须是唯一的。

    ark_Port=<portnum>

    服务器在它的上侦听客户端连接的端口。 在主机上必须是唯一的。

    ark_QueryPort=<portnum>

    服务器侦听查询的端口。 在主机上必须是唯一的。

    ark_ServerPassword="<password>"

    指定连接到服务器所需的密码

    ark_ServerAdminPassword="<password>"

    指定服务器管理员密码,该密码也是RCON密码。 建议不要使用这里选项- 请将密码存储在 GameUserSettings.ini 文件中。

    ark_MaxPlayers=<numplayers>

    允许连接到服务器的播放机的最大数量

    ark_AltSaveDirectoryName="<dirname>"

    ShooterGame/Saved 下保存世界文件的替代目录。 如果多个实例从同一目录中运行,则这些实例之间必须是唯一的。

    arkflag_NoBattlEye=true

    禁用 BattlEye


    Server  tool  MAN  SET  
    相关文章