Skip to main content

TOS CLI

CLI je předinstalováno v systémech TOS 7 a novějších. Příkaz tos můžete spouštět přímo z libovolného terminálu bez další instalace.

Úvod

CLI TOS 7 je nástroj pro správu systému TerraMaster TOS 7 z příkazového řádku, který poskytuje funkce odpovídající možnostem webového rozhraní pro správu. Jako základní součást platformy TOS Developer Platform nabízí nástroj CLI standardizovaná rozhraní příkazů a výstupní formáty JSON, díky čemuž jej lze snadno integrovat do nejrůznějších pracovních postupů vývoje, testování, automatizovaných operací a sekundárního vývoje.

Klíčové funkce

  • Připraveno k okamžitému použití: Předintegrováno do systému TOS, není nutná žádná další instalace
  • Flexibilní volání: Podporuje místní terminály, vzdálené shelly, skripty, nástroje AI a mnoho dalších způsobů volání
  • Interaktivní i neinteraktivní režim: Vhodné jak pro každodenní administrativní údržbu, tak pro úlohy ve skriptech a automatizaci
  • Podpora výstupu JSON: Usnadňuje programové zpracování a integraci CI/CD
  • Ukládání relace do mezipaměti: Jedno přihlášení s automatickým znovupoužitím relace pro následující příkazy
  • Komplexní správa: Plnospektrální správa pokrývající systém, úložiště, síť, uživatele, aplikace, služby a další

Rychlý start

# Execute from any terminal (local terminal, SSH, scripts, AI tools, or any command-line interface)
tos --help

# View system information (no authentication required)
tos info

# View file service status (no authentication required)
tos fileservice status

# Output in JSON format (for script parsing)
tos info --json

Globální volby

Následující volby platí pro všechny příkazy:

VolbaZkratkaPopis
--help-Zobrazí nápovědu k příkazu
--version-vZobrazí číslo verze (pro strukturovaný výstup použijte --json)
--json-Výstup ve formátu JSON (pouze u dotazovacích příkazů)
--yes-yPřeskočí výzvy k potvrzení u vysoce rizikových operací (vyžadováno v neinteraktivním režimu)
--debug-Povolí ladící výstup s podrobnými trasami provádění
--user-uUrčí uživatelské jméno (přebije proměnnou prostředí)
--pass-PUrčí heslo (přebije proměnnou prostředí)
--token-Určí token relace (přebije proměnnou prostředí i mezipaměť)

Příklad informací o verzi

tos --version
TOS CLI 1.0.7
TOS 7.0.0
Build 20260624
tos --version --json
{
"cli_version": "1.0.7",
"tos_version": "7.0.0",
"build": "20260624"
}

Ověřování a správa relací

Většina vzdálených příkazů (správa uživatelů, správa úložiště, centrum aplikací, ovládání ventilátoru, správa protokolů atd.) komunikuje se službou TOS daemon prostřednictvím HTTP a vyžaduje ověření.

Místní příkazy (např. tos info, tos fileservice, tos ssh status, tos service atd.) čtou přímo systémové soubory nebo volají systemd a nevyžadují ověření.

Priorita ověřování (od nejvyšší po nejnižší)

  1. Parametry příkazového řádku --user/--pass nebo --token
  2. Proměnná prostředí TOS_TOKEN
  3. Proměnné prostředí TOS_USER/TOS_PASS
  4. Soubor relace v mezipaměti ~/.tos/session.json
  5. Interaktivní výzva

Metoda 1: Ukládání relace do mezipaměti (doporučeno pro každodenní použití)

Použijte tos login jednou a následující příkazy budou automaticky znovupoužívat uloženou relaci (uloženou v ~/.tos/session.json, oprávnění 0600, heslo šifrované algoritmem RSA).

# Interactive login (prompts for username and password)
tos login

# Non-interactive login
tos login -u admin -P yourpassword

# Subsequent commands no longer require credentials
tos disk list
tos user list --json

# Clear cached session
tos logout

Metoda 2: Režim tokenu (pro CI/CD a prostředí bez stavu)

Vygenerujte přenosný token a předejte jej prostřednictvím proměnné prostředí.

# Generate token (outputs only the token string)
tos login -u admin -P yourpassword --token-only
# Output example: tos_v1.eyJ2ZXJzaW9uIjoxLC...

# Pass token via environment variable
export TOS_TOKEN="tos_v1.eyJ2ZXJzaW9uIjoxLC..."
tos disk list --json

Metoda 3: Parametry příkazového řádku nebo proměnné prostředí (starší přístup)

# Command-line flags
tos user list --user admin --pass yourpassword

# Environment variables
export TOS_USER=admin
export TOS_PASS=yourpassword
tos user list

Referenční seznam proměnných prostředí

ProměnnáPopisVýchozí
TOS_DAEMON_URLAdresa služby daemonhttp://localhost:5050
TOS_USERPřihlašovací uživatelské jméno-
TOS_PASSPřihlašovací heslo (v čistém textu, bezpečnostní riziko)-
TOS_TOKENToken relace (vygenerovaný příkazem tos login --token-only)-
TOS_SESSION_DIRAdresář pro ukládání souborů relací~/.tos

Klasifikace příkazů a přehled oprávnění

To, zda příkaz vyžaduje ověření, závisí na tom, zda potřebuje komunikovat se službou daemon:

Vyžadováno ověřeníSkupiny příkazů
Není vyžadovánoinfo, ssh, buzzer, fileservice, service, firewall (status/enable/disable), reboot, poweroff, version
Vyžadovánouser, user-group, fan, log, update, shared-folder, app, disk, array, volume, storage info, network info, firewall rule, tnas-online

Souhrn příkazů

Rychlý referenční souhrn všech příkazů tos:

Nadřazený příkazPodpříkazPopisOvěř.Vysoké riziko
tos--versionZobrazí informace o verziNeNe
tosinfoZobrazí přehled systému (verze TOS, hardware, CPU, paměť, teplota, ventilátor)NeNe
tosrebootRestartuje systémAno
tospoweroffBezpečně vypne systémAno
tos sshstatusZobrazí stav služby SSH a portNeNe
tos sshenablePovolí službu SSHNeNe
tos sshdisableZakáže službu SSHNe
tos buzzerstatusZobrazí stav upozornění bzučákuNeNe
tos buzzerenablePovolí upozornění bzučákuNeNe
tos buzzerdisableZakáže upozornění bzučákuNeNe
tos fanstatusZobrazí režim ovládání ventilátoru a rychlostAnoNe
tos fanset-modeNastaví režim ovládání ventilátoru (auto/low/mid/high)AnoNe
tos firewallstatusZobrazí stav povolení firewalluNeNe
tos firewallenablePovolí firewallNeNe
tos firewalldisableZakáže firewallNe
tos firewallruleVypíše pravidla firewalluAnoNe
tos fileservicestatusZobrazí stav souborových služeb (smb/nfs/ftp/webdav/rsync)NeNe
tos fileserviceenablePovolí souborovou službuNeNe
tos fileservicedisableZakáže souborovou službuNe
tos servicelistVypíše systémové služby (smb/nfs/ftp/sftp/rsync/ssh/telnet/webdav/webdavs)NeNe
tos servicestartSpustí systémovou službuNeNe
tos servicestopZastaví systémovou službuNe
tos servicerestartRestartuje systémovou službuNeNe
tos servicesetNastaví automatické spuštění služby při startu systémuNeNe
tos storageinfoZobrazí přehled úložiště (stav disk/pole/svazek/Hyper Cache)AnoNe
tos disklistVypíše všechny diskyAnoNe
tos diskmountPřipojí diskAnoNe
tos diskunmountOdpojí diskAno
tos arraylistVypíše všechna úložná poleAnoNe
tos arraymountPřipojí úložné poleAnoNe
tos arraydeleteSmaže úložné poleAno
tos volumelistVypíše všechny svazkyAnoNe
tos volumemountPřipojí svazekAnoNe
tos volumedeleteSmaže svazekAno
tos shared-folderlistVypíše sdílené složkyAnoNe
tos shared-foldershowZobrazí podrobnosti sdílené složkyAnoNe
tos shared-folderaddPřidá sdílenou složkuAnoNe
tos shared-folderdeleteSmaže sdílenou složkuAno
tos userlistVypíše místní uživateleAnoNe
tos useraddVytvoří místního uživateleAnoNe
tos userdeleteSmaže místního uživateleAno
tos useronlineZobrazí aktuálně přihlášené uživateleAnoNe
tos user-grouplistVypíše místní skupiny uživatelůAnoNe
tos user-groupaddVytvoří místní skupinu uživatelůAnoNe
tos user-groupdeleteSmaže místní skupinu uživatelůAno
tos applistVypíše všechny aplikaceAnoNe
tos appinfoZobrazí podrobnosti aplikaceAnoNe
tos appinstallNainstaluje aplikaciAno
tos appuninstallOdinstaluje aplikaciAno
tos appupdateAktualizuje aplikaceAno
tos appenablePovolí aplikaciAnoNe
tos appdisableZakáže aplikaciAno
tos appstatusZkontroluje stav aplikaceAnoNe
tos networkinfoZobrazí konfiguraci systémové sítěAnoNe
tos tnas-onlineinfoZobrazí stav vzdáleného přístupu tnas.onlineAnoNe
tos tnas-onlineenablePovolí vzdálený přístup tnas.onlineAno
tos tnas-onlinedisableZakáže vzdálený přístup tnas.onlineAno
tos logviewZobrazí systémové protokolyAnoNe
tos logclearVymaže systémové protokolyAno
tos logexportExportuje systémové protokoly jako CSVAnoNe
tos updatecheckZkontroluje systémové aktualizaceAnoNe
tos updateinstallNainstaluje systémové aktualizaceAno
tosloginPřihlásí se a uloží relaci do mezipamětiNeNe
toslogoutVymaže uloženou relaciNeNe

Referenční příručka příkazů

I. Informace o systému a stav

tos info – Přehled systému

Zobrazí komplexní informace o systému, včetně verze TOS, hardwaru, CPU, paměti, teploty a stavu ventilátoru.

tos info [--json]

Příklad výstupu (tabulka):

PROPERTY       VALUE
TOS Version 7.0.0447
BIOS Version 6.00
Model F4-424
Uptime 12 days 05:34:48
IP Address 192.168.1.20
CPU Model Intel N95
CPU Usage 18%
Memory Total 8 GB
Memory Usage 42%
System Temp 41 °C
CPU Temp 52 °C
Fan Speed 1200 RPM

Výstup JSON (tos info --json):

{
"tos_version": "7.0.0447",
"bios_version": "6.00",
"model": "F4-424",
"uptime": "12 days 05:34:48",
"ip_address": "192.168.1.20",
"cpu_model": "Intel N95",
"cpu_usage": 18,
"memory_total": "8 GB",
"memory_usage": 42,
"system_temperature": 41,
"cpu_temperature": 52,
"fan_speed": 1200
}

Informace o teplotě a ventilátoru závisí na hardwarových čidlech. Virtuální počítače nebo zařízení bez čidel zobrazí - (null ve formátu JSON).

II. Správa systému (restart / vypnutí)

Poznámka: reboot a poweroff jsou vzdálené příkazy a vyžadují ověření.

tos reboot – Restart systému (vysoké riziko)

tos reboot [--yes]
  • Interaktivní režim vyzve k potvrzení; neinteraktivní režim vyžaduje --yes
  • Provádí se prostřednictvím API služby daemon PUT /system/reboot
  • Výstup: Reboot scheduled

tos poweroff – Bezpečné vypnutí (vysoké riziko)

tos poweroff [--yes]
  • Interaktivní režim vyzve k potvrzení; neinteraktivní režim vyžaduje --yes
  • Provádí se prostřednictvím API služby daemon PUT /system/poweroff
  • Výstup: Power off scheduled

III. Správa služby SSH

Nadřazený příkaz: tos ssh (místní příkaz, nevyžaduje ověření)

tos ssh status – Zobrazení stavu SSH

tos ssh status [--json]

Příklad výstupu:

PROPERTY     VALUE
SSH Status enabled
Port 22

tos ssh enable – Povolení SSH

tos ssh enable [--port <port>]
  • --port určuje číslo portu, výchozí hodnota je 22
  • Akce: Zapište konfiguraci portu do /etc/ssh/sshd_config, spusťte systemctl enable + systemctl start
  • Výstup: SSH enabled on port 22

tos ssh disable – Zakázání SSH (vysoké riziko)

tos ssh disable [--yes]
  • Vysoce riziková operace: Může odpojit aktuální vzdálenou relaci
  • Interaktivní režim vyzve k potvrzení; neinteraktivní režim vyžaduje --yes
  • Výstup: SSH disabled

IV. Správa bzučáku

Nadřazený příkaz: tos buzzer (místní příkaz, nevyžaduje ověření)

tos buzzer status – Zobrazení stavu bzučáku

tos buzzer status [--json]

Příklad výstupu:

PROPERTY        VALUE
Buzzer Status enabled

tos buzzer enable – Povolení bzučáku

tos buzzer enable
  • Spustí skript upozornění bzučáku (/etc/tos/scripts/warnning)
  • Pokud je bzučák již povolen, vrátí chybu konfliktu (kód ukončení 4)
  • Výstup: Buzzer enabled

tos buzzer disable – Zakázání bzučáku

tos buzzer disable
  • Výstup: Buzzer disabled

V. Ovládání ventilátoru

Nadřazený příkaz: tos fan (vzdálený příkaz, vyžaduje ověření)

tos fan status – Zobrazení stavu ventilátoru

tos fan status [--json]

Příklad výstupu:

PROPERTY      VALUE
Fan Control enabled
Mode auto
Speed 1200 RPM

tos fan set-mode – Nastavení režimu ventilátoru

tos fan set-mode --mode <auto|low|mid|high>

Popis režimů:

RežimPopis
autoChytrý režim (systém upravuje automaticky)
lowNízká rychlost (tichý chod)
midStřední rychlost
highVysoká rychlost (maximální chlazení)
  • Při nastavování režimu zachovává stávající konfiguraci bzučáku
  • Výstup: Fan mode set to auto

VI. Správa firewallu

Nadřazený příkaz: tos firewall (hybridní režim)

PodpříkazPopisOvěřování
statusZobrazí stav povolení firewalluNení vyžadováno
enablePovolí firewallNení vyžadováno
disableZakáže firewall (vysoké riziko)Není vyžadováno
ruleVypíše pravidla firewalluVyžadováno

tos firewall status – Zobrazení stavu firewallu

tos firewall status [--json]

Příklad výstupu:

PROPERTY          VALUE
Firewall Status enabled

tos firewall enable – Povolení firewallu

tos firewall enable
  • Provádí systemctl enable + systemctl start pro iptables.service
  • Pokud je již povolen, vypíše Firewall already enabled a vrátí 0 (idempotentní)
  • Výstup: Firewall enabled

tos firewall disable – Zakázání firewallu (vysoké riziko)

tos firewall disable [--yes]
  • Vysoce riziková operace: Zakázání firewallu vystaví všechny síťové porty
  • Interaktivní režim vyzve k potvrzení; neinteraktivní režim vyžaduje --yes
  • Pokud je již zakázán, vypíše Firewall already disabled a vrátí 0 (idempotentní)
  • Výstup: Firewall disabled

tos firewall rule – Výpis pravidel firewallu

tos firewall rule [--detail] [--json]
  • Získá seznam pravidel z API služby daemon
  • --detail přidá sloupce DESTINATION a DESCRIPTION
  • Kompatibilní alias: tos firewall list

Příklad výstupu:

RULE ID   ACTION   PROTOCOL   SOURCE       PORT
1 allow tcp 0.0.0.0/0 22

VII. Správa souborových služeb

Nadřazený příkaz: tos fileservice (alias tos fs)

Místní příkaz, nevyžaduje ověření. Spravuje služby přímým čtením/zápisem konfiguračních souborů /etc/tos/config/*.json a ovládáním jednotek systemd.

Podporované služby:

SlužbaPopisVýchozí port
smbSdílení souborů SMB/CIFS445
nfsSdílení souborů NFS2049
ftpPřenos souborů FTP21
webdavSdílení souborů WebDAV80
rsyncSynchronizace souborů Rsync873

Při porovnávání názvů služeb se nerozlišují velká a malá písmena.

tos fileservice status – Zobrazení stavu souborových služeb

tos fileservice status [service-name] [--json]
  • Bez argumentu: Zobrazí stav všech 5 souborových služeb
  • S názvem služby: Zobrazí pouze tuto službu

Příklad výstupu:

SERVICE   ENABLED   STATUS    PORT
smb true running 445
nfs false stopped -
ftp true running 21
webdav false stopped -
rsync false stopped -

tos fileservice enable – Povolení souborové služby

tos fileservice enable <service-name>
  • Ověří název služby (povoleny jsou pouze smb/nfs/ftp/webdav/rsync, bez ohledu na velikost písmen)
  • Akce: Zapíše enable: true do konfiguračního souboru, spustí systemctl enable a systemctl start
  • Pokud je již povolena, vypíše File service already enabled a vrátí 4 (konflikt stavu)
  • Výstup: File service enabled: smb

tos fileservice disable – Zakázání souborové služby (vysoké riziko)

tos fileservice disable <service-name> [--yes]
  • Vysoce riziková operace: Může přerušit aktivní přístup k souborům
  • Interaktivní režim vyzve k potvrzení; neinteraktivní režim vyžaduje --yes
  • Pokud je již zakázána, vypíše File service already disabled a vrátí 0 (idempotentní)
  • Výstup: File service disabled: smb

VIII. Správa systémových služeb

Nadřazený příkaz: tos service

Místní příkaz, založený na systemd, nevyžaduje ověření. Spravuje základní systémové služby (smb/nfs/ftp/sftp/rsync/ssh/telnet/webdav/webdavs).

tos service list – Výpis systémových služeb

tos service list [--status <running|stopped>] [--json]

Příklad výstupu:

SERVICE NAME   STATUS    AUTOSTART
ftp stopped false
nfs stopped false
smb running false
ssh running true

tos service start – Spuštění služby

tos service start <service-name>
  • Idempotentní: Pokud již běží, vypíše Service already running: smb a vrátí 0
  • Výstup: Service started: smb

tos service stop – Zastavení služby (vysoké riziko)

tos service stop <service-name> [--yes]
  • Vysoce riziková operace: Může přerušit aktivní uživatele
  • Interaktivní režim vyzve k potvrzení; neinteraktivní režim vyžaduje --yes
  • Idempotentní: Pokud je již zastavena, vypíše Service already stopped: smb a vrátí 0
  • Výstup: Service stopped: smb

tos service restart – Restart služby

tos service restart <service-name>
  • Pokud služba neběží, chová se stejně jako start
  • Výstup: Service restarted: smb

tos service set – Nastavení automatického spuštění

tos service set <service-name> --autostart <true|false>
  • Založeno na systemd enable/disable
  • Výstup: Service autostart set: smb=true

IX. Správa úložiště

Poznámka: Všechny příkazy pro správu úložiště jsou vzdálené příkazy a vyžadují ověření. Komunikují s backendem úložiště prostřednictvím unixového socketu (/var/run/socks/storage.sock).

tos storage info – Přehled úložiště

tos storage info [--scope <disk|volume|raid|all>] [--json]
  • --scope filtruje rozsah zobrazení, výchozí hodnota je all
  • Statistiky zdravých disků vycházejí z výčtu Health úložných poolů

Příklad výstupu:

PROPERTY           VALUE
Disk Count 1
Healthy Disks 0
Warning Disks 0
Failed Disks 1
Array Count 1
Volume Count 1
External Devices 0
Hyper Cache disabled

tos disk – Správa disků

Nadřazený příkaz: tos disk

PodpříkazPopis
listVypíše disky s možnostmi řazení a podrobností
mountPřipojí disk
unmountOdpojí disk (vysoké riziko, vyžaduje --yes)
# List disks
tos disk list [--detail] [--sort <size|status|temp>] [--json]

# Mount a disk
tos disk mount sda

# Unmount a disk (high-risk)
tos disk unmount sda --yes

Příklad výstupu list:

DISK ID   MODEL                    CAPACITY   HEALTH   TEMP   SYSTEM DISK
HDD1 ST2000VX017-3CV102 2.00 TB normal - No

tos array – Správa polí

Nadřazený příkaz: tos array

PodpříkazPopis
listVypíše úložná pole s možnostmi řazení a podrobností
mountPřipojí pole
deleteSmaže pole (vysoké riziko, nevratné, vyžaduje --yes)
# List arrays
tos array list [--detail] [--sort <size|status>] [--json]

# Mount an array
tos array mount <array-uuid>

# Delete an array (high-risk)
tos array delete <array-uuid> --yes

tos volume – Správa svazků

Nadřazený příkaz: tos volume

PodpříkazPopis
listVypíše svazky s možnostmi řazení a podrobností
mountPřipojí svazek
deleteSmaže svazek (vysoké riziko, nevratné, vyžaduje --yes)
# List volumes
tos volume list [--detail] [--sort <size|status>] [--json]

# Mount a volume
tos volume mount <volume-uuid>

# Delete a volume (high-risk)
tos volume delete <volume-uuid> --yes

tos shared-folder – Správa sdílených složek

Nadřazený příkaz: tos shared-folder

PodpříkazPopis
listVypíše sdílené složky
showZobrazí podrobnou konfiguraci složky
addVytvoří sdílenou složku
deleteSmaže sdílenou složku (vysoké riziko, nevratné, vyžaduje --yes)
# List shared folders
tos shared-folder list [--detail] [--json]

# View folder details
tos shared-folder show <folder-id> [--json]

# Create a shared folder (non-interactive example)
tos shared-folder add myshare --path /Volume3/myshare --device Volume3 --yes

# Delete a shared folder (high-risk)
tos shared-folder delete myshare --yes

Hlavní parametry příkazu add:

ParametrPopis
<folder-name>Název složky, povinný
--pathCesta připojení, povinná v neinteraktivním režimu
--deviceÚložné zařízení, povinné v neinteraktivním režimu
--descPopis složky
--encryptPovolí šifrování
--recycleKoš: 0=vypnuto, 1=zapnuto, 2=pouze pro administrátory
--hiddenSkryje složku
--quotaKvóta: -1=zakázána, 0=vypnuto, 1=povolena
--save-daysPočet dní uchování v Koši (výchozí 30)
--time-machinePovolí Time Machine

X. Správa uživatelů

Poznámka: Všechny příkazy pro správu uživatelů jsou vzdálené příkazy a vyžadují ověření.

tos user – Správa místních uživatelů

Nadřazený příkaz: tos user

PodpříkazPopis
listVypíše všechny uživatele, lze filtrovat podle stavu
addVytvoří uživatele
deleteSmaže uživatele (vysoké riziko, nevratné, vyžaduje --yes)
onlineZobrazí aktuálně přihlášené uživatele
# List users
tos user list [--status active|inactive] [--json]

# Create a user (non-interactive, --password-stdin recommended)
echo 'SecurePass123' | tos user add bob --password-stdin --group users --enabled true --yes

# Delete a user (high-risk)
tos user delete bob --yes

# View online users
tos user online [--json]

Parametry příkazu add:

ParametrPopis
<username>Uživatelské jméno, povinné
--passwordHeslo v čistém textu (nedoporučuje se, je viditelné v seznamu procesů)
--password-stdinPřečte heslo ze stdin (doporučeno)
--groupPrimární skupina uživatelů, výchozí hodnota je users
--enabledZda je uživatel povolen, výchozí hodnota je true
--yesPřeskočí interaktivní potvrzení

Příklad výstupu online:

USERNAME    IP             LOGIN TIME          SERVICE
admin 192.168.1.10 2026-04-23T09:12:00 TOS Web

tos user-group – Správa skupin uživatelů

Nadřazený příkaz: tos user-group

PodpříkazPopis
listVypíše všechny skupiny uživatelů
addVytvoří skupinu uživatelů
deleteSmaže skupinu uživatelů (vysoké riziko, nevratné, vyžaduje --yes)
# List user groups
tos user-group list [--detail] [--json]

# Create a user group
tos user-group add developers --description "Development Team"

# Delete a user group (high-risk)
tos user-group delete developers --yes

Příklad výstupu list:

GROUP NAME   DESCRIPTION       MEMBER COUNT
admin Administrators 2
users Normal users 8

XI. Správa centra aplikací

Poznámka: Všechny příkazy pro správu aplikací jsou vzdálené příkazy a vyžadují ověření. Komunikují s backendem centra aplikací prostřednictvím unixového socketu (/var/api/Application.sock).

Nadřazený příkaz: tos app

Všechny podpříkazy přijímají buď ID aplikace, nebo zobrazovaný název (přesná shoda, přednost má ID).

PodpříkazPopis
listVypíše všechny aplikace
infoZobrazí podrobné informace o aplikaci
installNainstaluje aplikaci s volitelnou vlastní cestou (vyžaduje --yes)
uninstallOdinstaluje aplikaci (vysoké riziko, --clean odstraní zbytková data, vyžaduje --yes)
updateAktualizuje aplikace (pokud není zadána žádná aplikace, aktualizuje všechny, vyžaduje --yes)
enablePovolí aplikaci
disableZakáže aplikaci (vysoké riziko, může přerušit aktivní služby, vyžaduje --yes)
statusZkontroluje stav aplikace
# List applications
tos app list [--status running|stopped] [--refresh] [--json]

# View application details
tos app info mysql [--json]

# Install an application
tos app install DockerEngine --path /Volume1 --yes

# Uninstall an application (high-risk)
tos app uninstall mysql --yes

# Update all applications
tos app update --yes

# Enable/disable an application
tos app enable mysql
tos app disable mysql --yes

# View application status
tos app status mysql [--json]

Příklad výstupu list:

APP ID      NAME         VERSION    STATUS      CATEGORY           SIZE
mysql MariaDB 10.3.33 running Utilities 17.9 MB
plex Plex Media 1.42.2 running Multimedia 200.0 MB

Příklad výstupu status:

PROPERTY    VALUE
App ID mysql
Installed Yes
Running Yes
Version 10.3.33

XII. Správa sítě

tos network info – Zobrazení konfigurace sítě

Nadřazený příkaz: tos network (vzdálený příkaz, vyžaduje ověření)

Zobrazuje název zařízení, porty HTTP/HTTPS, rozhraní NIC, IP, MAC, MTU, DNS, bránu atd.

tos network info [--scope <all|ip|dns|gateway>] [--json]
  • --scope filtruje rozsah zobrazení, výchozí hodnota je all

Příklad výstupu:

PROPERTY       VALUE
Device Name TNAS-fe52
HTTP Port 8181
HTTPS Port 5443
Interface eth1
IPv4 10.18.13.150
IPv6 fe80::6ebf:b5ff:fe02:fe52
MAC 6c:bf:b5:02:fe:52
MTU 1500
DNS 10.18.2.10
IPv4 Gateway 10.18.13.1
IPv6 Gateway -
Bond Enabled false

XIII. Vzdálený přístup (tnas.online)

Poznámka: Všechny příkazy vzdáleného přístupu jsou vzdálené příkazy a vyžadují ověření.

Nadřazený příkaz: tos tnas-online

PodpříkazPopis
infoZobrazí stav vzdáleného přístupu
enablePovolí vzdálený přístup
disableZakáže vzdálený přístup (vysoké riziko, může přerušit vzdálená připojení, vyžaduje --yes)

tos tnas-online info – Zobrazení stavu

tos tnas-online info [--detail] [--json]
  • --detail zobrazí úplné informace o připojení (účet, URL, IP, verze, VPN, doba provozu)

Příklad výstupu:

PROPERTY    VALUE
Status enabled
TNAS ID ABCD1234
Connected true

tos tnas-online enable – Povolení vzdáleného přístupu

tos tnas-online enable --tnas-id <tnas-id> --account <email> [--password <pw>] [--password-stdin] [--yes]
ParametrPopis
--tnas-idTNAS ID, povinný
--accountÚčet TerraMaster (ve formátu e-mailu), povinný
--passwordHeslo účtu (čistý text se nedoporučuje)
--password-stdinPřečte heslo ze stdin (doporučeno)
--yesPřeskočí interaktivní potvrzení
  • Neinteraktivní režim vyžaduje --tnas-id, --account a heslo
  • Pokud je vzdálený přístup již povolen, vrátí kód ukončení 4
  • Výstup: tnas-online enabled

Neinteraktivní příklad:

echo 'password' | tos tnas-online enable --tnas-id MyNAS-01 --account user@example.com --password-stdin --yes

tos tnas-online disable – Zakázání vzdáleného přístupu (vysoké riziko)

tos tnas-online disable [--yes]
  • Interaktivní režim vyzve k potvrzení; neinteraktivní režim vyžaduje --yes
  • Idempotentní: Pokud je již zakázán, vrátí 0
  • Výstup: tnas-online disabled

XIV. Systémové protokoly

Poznámka: Všechny příkazy pro správu protokolů jsou vzdálené příkazy a vyžadují ověření.

Nadřazený příkaz: tos log

PodpříkazPopis
viewZobrazí protokoly s filtry podle kategorie události, úrovně a počtu řádků
clearVymaže protokoly (vysoké riziko, nevratné, vyžaduje --yes)
exportExportuje protokoly jako soubor CSV

tos log view – Zobrazení protokolů

tos log view [event] [--level <level>] [--lines <n>] [--json]

Kategorie událostí: all / system / connect / file / samba / ftp / storage / transmit (výchozí: all)

Úrovně protokolů: all / info / warn / error (výchozí: all)

Počet řádků: Výchozí hodnota je 20 řádků

Příklad výstupu:

TIME                         LEVEL   MODULE   USER   MESSAGE
2026-04-23T10:00:00+08:00 INFO system - System started

tos log clear – Vymazání protokolů (vysoké riziko)

tos log clear [event] [--level <level>] [--yes]
  • Vysoce riziková operace: Nevratně smaže záznamy protokolů
  • Interaktivní režim vyzve k potvrzení; neinteraktivní režim vyžaduje --yes
  • Výstup: Logs cleared: system

tos log export – Export protokolů

tos log export [event] [--level <level>] [--output <path>]
  • Exportuje protokoly zadané kategorie a úrovně jako soubor CSV
  • Výchozí umístění je aktuální adresář; pro určení cesty použijte --output
  • Výstup: Cesta k souboru a velikost souboru

XV. Systémové aktualizace

Poznámka: Příkazy aktualizace jsou vzdálené příkazy a vyžadují ověření.

Nadřazený příkaz: tos update

PodpříkazPopis
checkZkontroluje dostupné aktualizace
installStáhne a nainstaluje aktualizace (vysoké riziko, vyžaduje --yes)

tos update check – Kontrola aktualizací

tos update check [--json]
  • Dotáže se na dostupné systémové aktualizace

Když jsou aktualizace k dispozici:

Update available
Current Version 7.0.0447
Target Version 7.0.0559
Package Size 774.2 MB

Když je systém aktuální: System is up to date

tos update install – Instalace aktualizací (vysoké riziko)

tos update install [--yes] [--force]
  • Vysoce riziková operace: Stáhne a nainstaluje systémové aktualizace, může vyžadovat restart
  • Kompletní postup: Kontrola aktualizací → Stažení balíčku (s průběhem) → Instalace aktualizace (s kroky) → Výzva k restartu
  • Interaktivní režim vyzve k potvrzení; neinteraktivní režim vyžaduje --yes
  • --force vynutí instalaci, i když kontrola selže
  • Během instalace může dojít k odpojení připojení SSH
  • Výstup: Informace o průběhu + konečný výsledek

XVI. Správa relací

tos login – Přihlášení a uložení relace do mezipaměti

tos login [-u <username>] [-P <password>] [--token-only]
  • Bez argumentů: Interaktivní přihlášení (vyzve k zadání uživatelského jména a hesla)
  • --token-only: Vypíše pouze řetězec tokenu bez uložení souboru relace
# Interactive login
tos login

# Non-interactive login
tos login -u admin -P yourpassword

# Generate token (for CI/CD)
tos login -u admin -P yourpassword --token-only

tos logout – Vymazání uložené relace

tos logout
  • Vymaže uloženou relaci služby TOS daemon
  • Idempotentní: Pokud žádná relace neexistuje, vrátí 0
  • Výstup: Logged out

Interaktivní vs. neinteraktivní režim

CLI inteligentně rozpoznává, zda běží v terminálovém prostředí:

Interaktivní režim (terminálové prostředí)

  • Postupně se dotazuje na chybějící parametry
  • U vysoce rizikových operací zobrazuje výzvy k potvrzení [y/N]
  • Zadávání hesla se nezobrazuje (echo je vypnuto)
  • Ctrl+C zruší operaci (kód ukončení 130)
  • Zadání n nebo stisknutí Enter zruší operaci (kód ukončení 99)

Neinteraktivní režim (skripty/CI/CD)

  • Musí být zadány všechny povinné parametry
  • Vysoce rizikové příkazy musí používat --yes pro přeskočení potvrzení
  • Chybějící parametry nebo chybějící --yes způsobí chybu (kód ukončení 1)

Formát výstupu JSON

Všechny příkazy, které podporují --json, vypisují strukturovaná data JSON pro programové zpracování.

Konvence formátu:

  • Názvy polí používají formát snake_case
  • Logické hodnoty jsou true/false
  • Časy používají formát ISO 8601 (např. 2026-04-23T09:12:00+08:00)
  • Výstup JSON jde na stdout, chybové zprávy na stderr

Příklad:

tos fileservice status --json
[
{"service_name": "smb", "enabled": true, "status": "running", "port": "445"},
{"service_name": "nfs", "enabled": false, "status": "stopped", "port": "-"}
]

Kódy ukončení

Kód ukončeníVýznamTypické scénáře
0ÚspěchPříkaz byl úspěšně dokončen
1Chyba parametruChybějící povinné parametry, selhání ověření, chybějící --yes
2Odepřeno oprávněníSelhání ověření nebo nedostatečná oprávnění
3Prostředek nenalezenUživatel/služba/disk neexistuje
4Konflikt prostředkuProstředek již existuje nebo konflikt stavu
5Prostředek je obsazenProbíhá operace nebo je zařízení obsazené
6Chyba sítěNelze se připojit ke službě daemon
7Časový limitOperace překročila časový limit
8Částečný úspěchDávková operace částečně uspěla
9Vnitřní chybaNeznámá vnitřní chyba
10Relace vypršelaUložená relace vypršela, je nutné se znovu přihlásit
99Zrušeno uživatelemV interaktivním potvrzení zvoleno Ne nebo byla operace zrušena
130PřerušenoUživatel stiskl Ctrl+C

Příklady použití

Každodenní operace

# Execute directly from any terminal
tos info

# View disk health
tos disk list

# View online users
tos user online

Dávkové operace ve skriptech

# Batch create users (import from CSV)
# userlist.csv format: username,password,group
while IFS=, read -r u p g; do
echo "$p" | tos user add "$u" --password-stdin --group "$g" --enabled true --yes
done < userlist.csv

# Schedule disk health monitoring with alerts
tos disk list --json | jq '.[] | select(.health != "normal")'

Scénáře CI/CD

# Generate a token
TOS_TOKEN=$(tos login -u admin -P $ADMIN_PASS --token-only)
export TOS_TOKEN

# Install an application
tos app install DockerEngine --path /Volume1 --yes

Volání nástroji AI

# AI tools can invoke tos commands via command line
# Example: Retrieve system status for AI analysis
tos info --json

# AI can parse JSON output and make decisions
tos disk list --json

Interní vývoj a systémová integrace

# Developers can encapsulate internal ops tools via CLI
# Example: Encapsulate disk health check function
check_disk_health() {
tos disk list --json | jq '.[] | select(.health != "normal")'
}

# Integrate CLI into internal ops platform
# Example: Retrieve system status and report to monitoring system
tos info --json | curl -X POST https://monitor.example.com/api/report -d @-

Často kladené otázky

Otázka: Vyžaduje CLI další instalaci?
Ne. CLI je předinstalováno v systémech TOS 7 a novějších. Příkaz tos můžete používat přímo z libovolného terminálu.

Otázka: Musí se CLI používat přes SSH?
Ne. CLI lze volat z libovolného terminálového rozhraní, včetně mimo jiné místních konzolí, vzdálených shellů, automatizačních skriptů a nástrojů AI.

Otázka: Lze CLI používat pouze na zařízeních TNAS?
Ne. CLI může používat jakýkoli systém se systémem TOS 7 nebo novějším.

Otázka: Proč některé příkazy vyžadují ověření a jiné ne?
Místní příkazy (např. tos info a tos fileservice) čtou/zapisují systémové soubory nebo přímo volají systemd, a proto nevyžadují ověření. Vzdálené příkazy musí komunikovat se službou TOS daemon, a proto vyžadují ověření.

Otázka: Je soubor relace v mezipaměti bezpečný?
Soubor relace (~/.tos/session.json) má oprávnění nastavená na 0600 a hesla jsou uložena zašifrovaná pomocí veřejného klíče RSA služby daemon; hesla v čistém textu se nikdy neukládají.

Otázka: Jak používám výstup JSON?
Přidejte k dotazovacím příkazům parametr --json, např. tos disk list --json.

Otázka: Jak potvrdím vysoce rizikové operace v neinteraktivním režimu?
Všechny vysoce rizikové příkazy musí obsahovat parametr --yes; jinak příkaz skončí s chybou.

Další nápověda

Každý příkaz podporuje --help pro podrobné informace o použití:

tos --help
tos user add --help
tos app install --help