Как выполнять команды через консоль

1. Подготовка и доступ к панели proxify.cloud

  1. Авторизуйтесь в личном кабинете proxify.cloud.
  2. Перейдите в раздел «Мои услуги»«Выделенные серверы» (или VDS, если используете виртуалку).
  3. Нажмите на нужный сервер, чтобы открыть карточку управления.
  4. Убедитесь, что сервер включен (статус Running). Если нет — нажмите Start.
  5. Для работы с консолью Ubuntu вам понадобится SSH-доступ. В карточке сервера найдите блок «Доступ» или «Сеть»:
    • IP-адрес (IPv4)
    • Порт SSH (по умолчанию 22, на proxify.cloud может быть изменён на 22022 или другой — проверяйте поле «Порт SSH»)
    • Логин: root
    • Пароль: указан в письме при создании или в разделе «Пароли» (если не меняли).

2. Подключение через SSH

2.1. Из Windows (PowerShell / Terminal / PuTTY)

Откройте терминал и выполните:

ssh root@ВАШ_IP -p ВАШ_ПОРТ

При первом подключении подтвердите отпечаток ключа (yes). Введите пароль (символы не отображаются).

2.2. Из Linux / macOS

То же самое, терминал уже встроен:

ssh -p ВАШ_ПОРТ root@ВАШ_IP

2.3. Использование SSH-ключей (рекомендуется)

На локальной машине сгенерируйте ключ, если нет:

ssh-keygen -t ed25519

Скопируйте публичный ключ на сервер:

ssh-copy-id -p ВАШ_ПОРТ root@ВАШ_IP

Теперь вход без пароля.

3. Понимание структуры: где лежит сервер Minecraft

На выделенном сервере с Ubuntu сервер Minecraft обычно запускается в одном из вариантов:

  • Docker-контейнер (через панель типа Pterodactyl, CubeCoders AMP или самописный compose)
  • Systemd-сервис (нативный Java-процесс)
  • Screen / tmux сессия (ручной запуск)

Важно: Команды в консоль сервера Minecraft (оп, бан, гейммоуды) можно отправить только в процесс, где запущен Java-сервер. Прямой ввод в SSH-терминал Ubuntu их не выполнит.

Определите способ запуска:

# Проверка systemd
systemctl list-units --type=service | grep -i minecraft

# Проверка docker
docker ps --format "table {{.Names}}\t{{.Image}}\t{{.Status}}"

# Проверка screen/tmux
screen -ls
tmux list-sessions

4. Отправка команд в Java-процесс (основные сценарии)

4.1. Сценарий А: Сервер в Docker (наиболее частый на proxify.cloud)

Если вы видите контейнер, например mc-server или pterodactyl_xxx:

Вариант 1: docker exec (одноразовая команда)

docker exec -i mc-server rcon-cli "say Привет с хоста!"

Требуется включённый RCON в server.properties:

enable-rcon=true
rcon.port=25575
rcon.password=ваш_сильный_пароль

Если rcon-cli нет в образе, установите его или используйте mc-monitor / mcrcon.

Вариант 2: Подключение к интерактивной консоли контейнера

docker attach mc-server
  • Вы попадаете в stdin Java-процесса.
  • Вводите команды напрямую: op PlayerName, gamemode creative PlayerName.
  • Выход без остановки сервера: Ctrl+P, затем Ctrl+Q (последовательно).

Вариант 3: Через docker compose (если запуск через compose)

cd /opt/minecraft  # или ваш путь к docker-compose.yml
docker compose exec mc-server rcon-cli "list"

4.2. Сценарий Б: Сервер как systemd-сервис (нативный Java)

Предположим, юнит называется minecraft.service.

Просмотр логов в реальном времени (read-only):

journalctl -u minecraft -f

Отправка команды через stdin systemd (требует настройки StandardInput=socket или утилиты systemd-socket-activate — редко используется нативно).

Практичнее: настроить RCON или использовать screen/tmux обёртку. Если сервер запущен просто через java -jar в systemd без обёртки — нельзя отправить команду стандартными средствами systemd. Переходите к настройке RCON.

Настройка RCON в server.properties (обязательна для управления):

nano /opt/minecraft/server.properties

Измените/добавьте:

enable-rcon=true
rcon.port=25575
rcon.password=СложныйПароль123

Перезапустите сервис:

systemctl restart minecraft

Использование mcrcon (клиент RCON): Установка:

apt update && apt install -y git build-essential
cd /tmp && git clone https://github.com/Tiiffi/mcrcon.git
cd mcrcon && make && cp mcrcon /usr/local/bin/

Использование:

mcrcon -H 127.0.0.1 -P 25575 -p СложныйПароль123 "op PlayerName"
mcrcon -H 127.0.0.1 -P 25575 -p СложныйПароль123 "gamemode creative PlayerName"

Для интерактивного режима:

mcrcon -H 127.0.0.1 -P 25575 -p СложныйПароль123 -t

4.3. Сценарий В: Сервер в Screen / tmux (ручной запуск)

Если вы видите сессию screen -ls:

There is a screen on:
        12345.minecraft   (Detached)

Подключение к консоли:

screen -r minecraft

Теперь вы внутри консоли сервера. Вводите команды: help, op User, whitelist add User.

Отправка команды без входа (однострочник):

screen -S minecraft -X stuff "say Автосообщение из скрипта\n"

Важно: \n в конце — это Enter. Кавычки обязательны.

Для tmux:

tmux attach -t minecraft
# Выход: Ctrl+B, затем D

# Отправка команды:
tmux send-keys -t minecraft "op PlayerName" Enter

5. Автоматизация: скрипты и крон

5.1. Пример скрипта бэкапа с командой save-all

Создайте /opt/scripts/backup_mc.sh:

#!/bin/bash
CONTAINER="mc-server"  # или имя screen/tmux сессии
BACKUP_DIR="/opt/backups/minecraft"
DATE=$(date +%F_%H-%M)

# 1. Сохраняем мир на диск
docker exec -i "$CONTAINER" rcon-cli "save-all"
docker exec -i "$CONTAINER" rcon-cli "save-off"
sleep 10

# 2. Архивируем
tar -czf "$BACKUP_DIR/world_$DATE.tar.gz" -C /opt/minecraft/data world

# 3. Включаем сохранение
docker exec -i "$CONTAINER" rcon-cli "save-on"
docker exec -i "$CONTAINER" rcon-cli "say Бэкап завершён: $DATE"

# 4. Удаляем старые (старше 7 дней)
find "$BACKUP_DIR" -name "world_*.tar.gz" -mtime +7 -delete

Сделайте исполняемым:

chmod +x /opt/scripts/backup_mc.sh

Добавьте в крон (каждый день в 04:00):

crontab -e

Добавьте строку:

0 4 * * * /opt/scripts/backup_mc.sh >> /var/log/mc_backup.log 2>&1

5.2. Пример: Авто-рестарт с предупреждением

Файл /opt/scripts/restart_mc.sh:

#!/bin/bash
CONTAINER="mc-server"
docker exec -i "$CONTAINER" rcon-cli "say §cСервер перезагрузится через 1 минуту!"
sleep 30
docker exec -i "$CONTAINER" rcon-cli "say §cСервер перезагрузится через 30 секунд!"
sleep 20
docker exec -i "$CONTAINER" rcon-cli "say §cСервер перезагрузится через 10 секунд!"
sleep 10
docker restart "$CONTAINER"

6. Работа с файлами конфигурации через консоль Ubuntu

Часто нужно изменить настройки без входа в игру.

6.1. Редактирование server.properties

# Если Docker (файлы на хосте в смонтированной папке)
nano /opt/minecraft/server.properties

# Если нужно внутри контейнера (редко)
docker exec -it mc-server nano /data/server.properties

Ключевые параметры:

motd=Мой сервер на proxify.cloud
max-players=50
view-distance=10
simulation-distance=6
enable-command-block=true

6.2. Управление плагинами/модами (Paper/Spigot/Fabric)

Пути на хосте (пример для Docker с маппингом /opt/minecraft:/data):

# Плагины
ls -la /opt/minecraft/plugins/
# Загрузка нового плагина
wget -P /opt/minecraft/plugins/ https://example.com/Plugin.jar
# Перезагрузка плагинов (требует PlugMan или рестарт)
docker exec -i mc-server rcon-cli "plugman reload PluginName"

6.3. Файл ops.json / permissions

# Выдать OP через файл (сервер должен быть ОСТАНОВЛЕН)
nano /opt/minecraft/ops.json

Формат:

[
  {
    "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "name": "PlayerName",
    "level": 4,
    "bypassesPlayerLimit": false
  }
]

UUID узнайте на namemc.com или командой mcrcon ... "uuid PlayerName".

7. Мониторинг и диагностика через консоль хоста

7.1. Ресурсы сервера (Ubuntu)

# Общая нагрузка
htop
# Или top
top

# Диск
df -h
# Где место съедено
du -sh /opt/minecraft/*

# Память Java-процесса
ps aux | grep java
# Подробно по PID
pid=$(pgrep -f "paper.*jar")
cat /proc/$pid/status | grep -E 'VmRSS|VmSize'

7.2. Логи Minecraft

# Docker
docker logs -f mc-server --tail 1