---
title: "คำสั่งของ ERPC CLI"
description: "กลุ่มคำสั่งทั้งหมดของ ERPC CLI ตัวเลือกส่วนกลาง --json และ --lang รูปแบบ error และ exit code รวมถึงคำสั่ง erpc storage และ erpc backup"
canonical: "https://erpc.global/th/doc/erpc-cli/commands/"
locale: "th"
---

# คำสั่งของ ERPC CLI

กลุ่มคำสั่งทั้งหมดของ ERPC CLI ในตารางเดียว ตัวเลือกที่ใช้ได้กับทุกคำสั่ง และ exit code ที่สคริปต์เชื่อถือได้

หน้านี้อธิบาย ERPC CLI `v0.1.0-rc.4` ซึ่งเป็นเวอร์ชัน pre-release

## กลุ่มคำสั่ง

รันกลุ่มคำสั่งใดก็ได้โดยไม่ระบุคำสั่งย่อย เช่น `erpc validator` หรือ `erpc worker` เพื่อแสดงรายการคำสั่งย่อยของกลุ่มนั้น

| คำสั่ง | สิ่งที่ทำ |
| --- | --- |
| `validator` (`v`), `rpc` (`r`), `node` (`n`) | [Validator และ RPC node](https://erpc.global/th/doc/erpc-cli/nodes/) |
| `rpc call` | ส่ง JSON-RPC request หนึ่งรายการไปยัง endpoint ที่ใช้ร่วมกัน endpoint ที่กำหนดเอง หรือ endpoint แบบ x402 ([การเรียก RPC และ webhook](https://erpc.global/th/doc/erpc-cli/rpc-call-and-webhooks/)) |
| `webhook` | จัดการ subscription ของ RPC ในเครื่อง และส่งเหตุการณ์ไปยัง callback แบบ HTTP |
| `ai`, `resume`, `memory`, `skills` | [ERPC AI](https://erpc.global/th/doc/erpc-cli/ai/) รวมถึงการสนทนาที่บันทึกไว้ ความจำ และ skill ของ ERPC AI |
| `worker` (`w`) | [แอปของคุณเอง](https://erpc.global/th/doc/erpc-cli/worker-quickstart/)บนเซิร์ฟเวอร์ |
| `storage` (`st`), `backup` | ERPC Global Storage และการสำรองข้อมูลของเครื่อง ([ด้านล่าง](https://erpc.global/th/doc/erpc-cli/commands/#พื้นที่จัดเก็บและการสำรองข้อมูล)) |
| `wallet` | wallet บน Base ที่ใช้ซื้อ ERPC Credit ด้วย EURC ([ชำระเงินจาก wallet](https://erpc.global/th/doc/erpc-cli/ai/#ชำระเงินจาก-wallet)) |
| `signup`, `login`, `logout`, `whoami` | บัญชี ERPC ของคุณ ([ลงชื่อเข้าใช้และคีย์](https://erpc.global/th/doc/erpc-cli/sign-in-and-keys/)) |
| `doctor` | รายงานว่าเครื่องนี้จัดเก็บเซสชันของคุณอย่างไร |
| `config` | อ่านและเปลี่ยนแปลง `~/.erpc/config.toml` (เฉพาะการตั้งค่าสาธารณะ) `erpc config init` จะเขียนไฟล์เริ่มต้นที่มีคำอธิบายประกอบ เว้นแต่จะมีไฟล์นี้อยู่แล้ว |
| `version` | ข้อมูลเวอร์ชัน build และคอมโพเนนต์ |
| `completions` | สร้าง shell completion: `erpc completions zsh` และรองรับ bash, fish, powershell และ elvish ด้วย |

## ตัวเลือกส่วนกลาง

- **`--json`** ให้ผลลัพธ์ที่เครื่องอ่านได้: `erpc --json <command>` ส่วน `ERPC_JSON=true` ให้ผลเหมือนกัน สำหรับคำสั่งของ node ต้องวาง `--json` ไว้ก่อนคำสั่ง
- **`--lang`** กำหนดภาษาที่ erpc ใช้: `en`, `ja`, `zh` หรือ `ru` หากไม่ระบุ erpc จะใช้การตั้งค่า `locale` และหากไม่มีจะใช้ภาษาของระบบ

## error และ exit code

ความล้มเหลวจะแสดงในรูปแบบเดียวกันทุกที่: บรรทัด `error:` ที่บอกว่าเกิดอะไรผิดพลาด และบรรทัด `hint:` ที่บอกว่าควรทำอะไรต่อเมื่อมีคำแนะนำ เมื่อใช้ `--json` ความล้มเหลวจะเป็นออบเจ็กต์เดียวบน standard output `{"error": {"code", "exit", "message", "hint"}}` มีสองกรณีที่จะพิมพ์ข้อความของ clap เองและจบด้วย exit status 2 แทน ได้แก่ บรรทัดคำสั่งที่ clap แยกวิเคราะห์ไม่ได้เมื่อรันในเทอร์มินัล และอาร์กิวเมนต์ที่คำสั่งย่อยของ node tree (`erpc validator`, `rpc`, `node`) ไม่รับ แม้จะใช้ `--json` ก็ตาม ฟิลด์ `details` จะปรากฏเฉพาะเมื่อคำสั่งมีข้อมูลเพิ่มเติมที่จะบอกสคริปต์เกี่ยวกับสิ่งที่ทำไปก่อนล้มเหลว และจะไม่ปรากฏในเทอร์มินัลเลย

| exit status | รหัส | ความหมาย |
| --- | --- | --- |
| 0 | | ทำงานสำเร็จ |
| 1 | `failed` | ไม่สามารถทำสิ่งที่ขอได้ |
| 2 | `usage` | บรรทัดคำสั่งใช้งานไม่ได้ |
| 3 | `needs_terminal` | ต้องมีคนตอบ: ส่ง `--yes` หรือรันในเทอร์มินัล |
| 4 | `not_signed_in` | รัน `erpc login` |
| 5 | `problems_found` | การตรวจสอบ (`status`, `doctor`) พบปัญหา และรายงานของการตรวจสอบระบุว่าเป็นปัญหาใด |
| 6 | `declined` | คุณตอบว่าไม่ และไม่มีสิ่งใดถูกเปลี่ยนแปลง |
| 7 | `network` | ไม่สามารถเชื่อมต่อ ERPC หรือบริการอื่นได้ |

เมื่อถูกหยุดด้วย Ctrl-C (หรือ SIGTERM, SIGHUP) erpc จะจบการทำงานด้วยสัญญาณนั้นเอง ลูปในสคริปต์จึงหยุดด้วยเช่นกัน รหัสที่เผยแพร่แล้วจะคงชื่อและ exit status เดิมไว้ และจะไม่มีการนำรหัสกลับมาใช้ซ้ำเลย

## พื้นที่จัดเก็บและการสำรองข้อมูล

```bash
erpc storage buy 5        # an ERPC Global Storage plan
erpc backup init          # back this machine up with restic, on a schedule if you like
```

`erpc storage buy` ซื้อแพ็กเกจ ERPC Global Storage โดยชำระจาก ERPC Credit ดูแพ็กเกจและราคาได้ที่ [ราคา](https://erpc.global/th/price/)

### erpc storage

- `erpc storage put` จะเข้ารหัสไฟล์บนเครื่องนี้ก่อนส่งข้อมูลส่วนใดออกไป เว้นแต่จะระบุ `--no-encrypt` ERPC จัดเก็บเฉพาะไบต์ที่เข้ารหัสแล้ว และไม่ถือคีย์ไว้เลย `erpc storage get` จะตรวจพบไฟล์ที่เข้ารหัสและถอดรหัสให้
- แต่ละบัญชีมีคีย์เข้ารหัสพื้นที่จัดเก็บหนึ่งคีย์ ซึ่งเก็บไว้ในที่เก็บที่ `erpc login` เลือก erpc ไม่เก็บคีย์นี้ไว้ใน keyring ของ Linux kernel ซึ่งจะหายไปเมื่อรีบูต: ให้ลงชื่อเข้าใช้ด้วย `--store 1password` หรือ `--store file` หรือใช้ `--no-encrypt` เมื่อใช้ที่เก็บ `file` คีย์จะอยู่ใน `~/.erpc/storage-key` (mode 0600) โดยไม่ได้เข้ารหัส `--no-encrypt` จะอัปโหลดไฟล์ที่คุณกำลังส่งตามสภาพเดิมโดยไม่เข้ารหัส
- **การทำคีย์เข้ารหัสพื้นที่จัดเก็บหายจะทำให้สูญเสียทุกไฟล์ที่เข้ารหัสด้วยคีย์นั้น** และ ERPC ไม่สามารถกู้คืนคีย์นี้ได้ `erpc storage key export --show` จะพิมพ์คีย์ออกมาเพื่อให้เก็บสำเนาไว้นอกเครื่องได้ และ `erpc storage key import` จะนำคีย์กลับมาใช้บนเครื่องอื่น
- ERPC มองเห็น path ที่ใช้จัดเก็บไฟล์และขนาดของไฟล์ได้
- `erpc storage keys list` แสดง access key ของพื้นที่จัดเก็บ และ `erpc storage keys revoke <n>` จะเพิกถอนคีย์หนึ่งรายการ

### erpc backup

`erpc backup` สำรองข้อมูลเครื่องไปยัง ERPC Global Storage ด้วย restic ไฟล์จะถูกเข้ารหัสบนเครื่องของคุณก่อนออกจากเครื่อง และ ERPC ไม่ถือรหัสผ่านที่เปิดข้อมูลสำรองได้เลย

| คำสั่ง | สิ่งที่ทำ |
| --- | --- |
| `erpc backup init` | ติดตั้ง restic สร้าง access key และ repository และมอบคีย์ restic ของตัวเองให้เครื่องนี้ |
| `erpc backup run [paths]` | สำรองข้อมูล บน Linux หากไม่ระบุ path จะสำรอง `/` โดยไม่รวม pseudo-filesystem, จุด mount และ path ที่เปลี่ยนแปลงชั่วคราว บนระบบอื่น ให้ระบุ path เอง |
| `erpc backup snapshots` | snapshot ของเครื่องนี้ ใช้ `--all-hosts` เพื่อดู snapshot ของทุกเครื่อง |
| `erpc backup restore <id\|latest>` | เรียกคืนไปยังไดเรกทอรีใหม่ เว้นแต่ `--target` จะระบุไดเรกทอรีอื่น `--in-place` จะเขียนทับเครื่องนี้หลังจากถามก่อน |
| `erpc backup check` | ตรวจสอบ repository และอ่านข้อมูลกลับมา 5% |
| `erpc backup prune` | เก็บ snapshot รายวัน 7 รายการ รายสัปดาห์ 4 รายการ และรายเดือน 6 รายการของเครื่องหนึ่งเครื่อง หลังจากถามก่อน |
| `erpc backup schedule daily\|weekly\|off [paths]` | รัน `run` ตามตัวจับเวลา ที่เวลา `--at` (ค่าเริ่มต้น 03:00) |
| `erpc backup status` | กำหนดการ และผลของการรันครั้งล่าสุด |
| `erpc backup password --show` | พิมพ์รหัสผ่านหลักของ repository เพื่อเก็บสำเนาไว้ที่อื่น |

- **แต่ละเครื่องจะได้รับคีย์แบบ append-only** ที่ลบข้อมูลสำรองของตัวเองไม่ได้ เครื่องที่คุณรัน `erpc backup init` จะถือคีย์ที่ลบได้ไว้ด้วย ดังนั้นการป้องกันนี้จะมีผลเฉพาะบนเครื่องที่ไม่ได้เก็บเซสชันของ erpc หรือ secret สำหรับการสำรองข้อมูลของบัญชีไว้เลย
- **โปรดเก็บสำเนาของ `erpc backup password --show` ไว้แยกจากเครื่องต่าง ๆ** หากสูญเสียรหัสผ่านหลักและ `backup.env` ของทุกเครื่อง ข้อมูลสำรองจะสูญหาย
- **ข้อมูลสำรองจะไม่รวมไฟล์คีย์และ secret ของระบบที่รู้จัก** เช่น `.ssh/id_*`, `.config/solana/id.json`, เซสชันของ erpc และ SSH host key ส่วนข้อมูลคีย์ที่ใช้ชื่ออื่นหรืออยู่ที่อื่นจะถูกสำรองเหมือนไฟล์อื่นทั่วไป: ให้ยกเว้นด้วย `--exclude`
- erpc ติดตั้ง restic 0.19.1 และตรวจสอบทั้งไฟล์ archive และโปรแกรมกับ SHA-256 digest ที่คอมไพล์ไว้ใน erpc
- **การตั้งเวลา:** บน Linux ให้รัน `sudo erpc backup init` แล้วตามด้วย `sudo erpc backup schedule daily` บน macOS ให้รัน `erpc backup schedule daily ~/Documents` โดยงานจะทำงานในนามของคุณ ขณะที่คุณเข้าสู่ระบบอยู่
- ข้อมูลสำรองจะไปยังภูมิภาคเริ่มต้นของบัญชี และ `erpc backup` ทำงานบนเครื่องที่ต้องการสำรองข้อมูล ส่วนเซิร์ฟเวอร์ของ worker ให้ตั้งค่าด้วย `erpc worker backup on` แทน ([สำรองข้อมูล state ของแอป](https://erpc.global/th/doc/erpc-cli/worker-status-and-billing/#สำรองข้อมูล-state-ของแอป))
