diff --git a/Server/clear-ground-items-hourly.sh b/Server/clear-ground-items-hourly.sh index c6fc3cf..292626b 100755 --- a/Server/clear-ground-items-hourly.sh +++ b/Server/clear-ground-items-hourly.sh @@ -1,20 +1,23 @@ #!/usr/bin/env bash -# Почасовая очистка выброшенных на земле предметов (сущность minecraft:item) через RCON +# Почасовая очистка выброшенных на земле предметов (сущность item) через RCON # с тем же графиком предупреждений, что и restart-scheduled.sh (10 / 5 / 1 мин, 30 с, 5…1). # # Требования: RCON как в restart-scheduled.sh (mcrcon или rcon), server.properties, # сервер в systemd active (по умолчанию unit minecraft). # -# Расписание — каждый час, например в начале часа: -# 0 * * * * /usr/bin/bash /opt/PupaMLupa/Server/clear-ground-items-hourly.sh >>/var/log/mc-clear-items.log 2>&1 -# Чтобы не пересекаться по времени с перезапуском в 00:00 / 06:00 / 12:00 / 18:00, можно сместить: -# 30 * * * * .../clear-ground-items-hourly.sh ... +# Расписание (cron достаточно, отдельная блокировка между скриптами не обязательна): +# Перезапуск обычно: 0 */6 * * * → в :00 часов 0, 6, 12, 18. +# Очистку не ставьте в те же :00 — иначе ~10 минут предупреждений пересекутся. +# Рекомендуется каждый час в половине часа (после типичного перезапуска уже всё тихо): +# 30 * * * * /usr/bin/bash /opt/PupaMLupa/Server/clear-ground-items-hourly.sh >>/var/log/mc-clear-items.log 2>&1 +# Другой вариант — одна фиксированная минута, не кратная 6-часовому перезапуску, например: +# 17 * * * * … (каждый час в :17) # # Переменные окружения (необязательно): # MINECRAFT_SERVICE — unit systemd (по умолчанию: minecraft) # RCON_HOST, RCON_PORT, RCON_PASSWORD, RCON_TIMEOUT — как в restart-scheduled.sh # CLEAR_ITEMS_RCON_CMD — команда консоли без ведущего / (по умолчанию: -# kill @e[type=minecraft:item]) +# kill @e[type=item] — то же, что /kill в игре) set -euo pipefail export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:${PATH:-}" @@ -26,7 +29,7 @@ MINECRAFT_SERVICE="${MINECRAFT_SERVICE:-minecraft}" RCON_HOST="${RCON_HOST:-127.0.0.1}" RCON_TIMEOUT="${RCON_TIMEOUT:-60s}" RCON_CLIENT="" -CLEAR_ITEMS_RCON_CMD="${CLEAR_ITEMS_RCON_CMD:-kill @e[type=minecraft:item]}" +CLEAR_ITEMS_RCON_CMD="${CLEAR_ITEMS_RCON_CMD:-kill @e[type=item]}" LOCK_FILE="${SCRIPT_DIR}/.clear-ground-items-hourly.lock" PROPS="${SCRIPT_DIR}/server.properties" diff --git a/Server/restart-scheduled.sh b/Server/restart-scheduled.sh index 3c12243..23f1e74 100755 --- a/Server/restart-scheduled.sh +++ b/Server/restart-scheduled.sh @@ -22,7 +22,11 @@ # # Расписание (каждые 6 часов: 00:00, 06:00, 12:00, 18:00): # crontab -e -# 0 */6 * * * /opt/PupaMLupa/Server/restart-scheduled.sh >>/var/log/mc-restart.log 2>&1 +# 0 */6 * * * /usr/bin/bash /opt/PupaMLupa/Server/restart-scheduled.sh >>/var/log/mc-restart.log 2>&1 +# +# Вместе с clear-ground-items-hourly.sh: перезапуск в :00 указанных часов, очистку +# ставьте в другое время суток по часам — например в :30 каждого часа (см. тот скрипт), +# чтобы окна предупреждений (~10 мин + остановка/старт) не шли одновременно с очисткой. # # Переменные окружения (необязательно): # MINECRAFT_SERVICE — имя unit (по умолчанию: minecraft)