---
title: "Các lệnh của ERPC CLI"
description: "Mọi nhóm lệnh của ERPC CLI, các tùy chọn toàn cục --json và --lang, định dạng lỗi và mã thoát, cùng các lệnh erpc storage và erpc backup."
canonical: "https://erpc.global/vi/doc/erpc-cli/commands/"
locale: "vi"
---

# Các lệnh của ERPC CLI

Mọi nhóm lệnh của ERPC CLI trong một bảng, các tùy chọn dùng được với mọi lệnh, và các mã thoát mà script có thể dựa vào.

Trang này mô tả ERPC CLI `v0.1.0-rc.4`, một bản pre-release.

## Nhóm lệnh

Chạy bất kỳ nhóm lệnh nào mà không kèm động từ, chẳng hạn `erpc validator` hoặc `erpc worker`, để liệt kê các động từ của nhóm đó.

| Lệnh | Chức năng |
| --- | --- |
| `validator` (`v`), `rpc` (`r`), `node` (`n`) | [Validator và RPC node](https://erpc.global/vi/doc/erpc-cli/nodes/) |
| `rpc call` | Gửi một request JSON-RPC đến endpoint dùng chung, endpoint tùy chỉnh hoặc endpoint x402 ([Lệnh gọi RPC và webhook](https://erpc.global/vi/doc/erpc-cli/rpc-call-and-webhooks/)) |
| `webhook` | Quản lý các subscription RPC cục bộ và gửi sự kiện đến một HTTP callback |
| `ai`, `resume`, `memory`, `skills` | [ERPC AI](https://erpc.global/vi/doc/erpc-cli/ai/), các cuộc trò chuyện đã lưu, trí nhớ và skill của nó |
| `worker` (`w`) | [Ứng dụng của riêng bạn](https://erpc.global/vi/doc/erpc-cli/worker-quickstart/) trên một server |
| `storage` (`st`), `backup` | ERPC Global Storage và sao lưu máy ([bên dưới](https://erpc.global/vi/doc/erpc-cli/commands/#storage-và-sao-lưu)) |
| `wallet` | Ví Base dùng EURC để mua ERPC Credit ([Thanh toán từ ví](https://erpc.global/vi/doc/erpc-cli/ai/#thanh-toán-từ-ví)) |
| `signup`, `login`, `logout`, `whoami` | Tài khoản ERPC của bạn ([Đăng nhập và khóa](https://erpc.global/vi/doc/erpc-cli/sign-in-and-keys/)) |
| `doctor` | Báo cáo cách máy này lưu phiên của bạn |
| `config` | Đọc và thay đổi `~/.erpc/config.toml` (chỉ các thiết lập công khai). `erpc config init` ghi một tệp khởi đầu có chú thích, trừ khi tệp đó đã có |
| `version` | Thông tin về phiên bản, bản build và các thành phần |
| `completions` | Tạo completion cho shell: `erpc completions zsh`, và cả bash, fish, powershell và elvish |

## Tùy chọn toàn cục

- **`--json`** cho đầu ra mà máy đọc được: `erpc --json <command>`. `ERPC_JSON=true` có cùng tác dụng. Với các lệnh node, `--json` phải đặt trước lệnh.
- **`--lang`** đặt ngôn ngữ mà erpc dùng: `en`, `ja`, `zh` hoặc `ru`. Nếu không có tùy chọn này, erpc dùng thiết lập `locale`, nếu không có thiết lập đó thì dùng ngôn ngữ của hệ thống.

## Lỗi và mã thoát

Lỗi được trình bày giống nhau ở mọi nơi: một dòng `error:` cho biết điều gì đã sai, và một dòng `hint:` cho biết nên làm gì tiếp theo, nếu có. Với `--json`, lỗi là một object trên đầu ra chuẩn, `{"error": {"code", "exit", "message", "hint"}}`. Có hai trường hợp thay vào đó in thông báo riêng của clap và thoát với mã 2: một dòng lệnh mà clap không phân tích được khi chạy trong terminal, và một đối số mà động từ của cây node (`erpc validator`, `rpc`, `node`) không nhận, kể cả khi dùng `--json`. Trường `details` chỉ xuất hiện khi một lệnh còn điều cần cho script biết về những gì nó đã làm trước khi thất bại, và không bao giờ xuất hiện trong terminal.

| Trạng thái thoát | Mã | Ý nghĩa |
| --- | --- | --- |
| 0 | | Thành công |
| 1 | `failed` | Không thể làm điều được yêu cầu |
| 2 | `usage` | Dòng lệnh không dùng được |
| 3 | `needs_terminal` | Cần một người trả lời: truyền `--yes` hoặc chạy lệnh trong terminal |
| 4 | `not_signed_in` | Hãy chạy `erpc login` |
| 5 | `problems_found` | Một lần kiểm tra (`status`, `doctor`) đã phát hiện vấn đề, và báo cáo của nó cho biết đó là vấn đề nào |
| 6 | `declined` | Bạn đã từ chối, và không có gì bị thay đổi |
| 7 | `network` | Không thể kết nối tới ERPC hoặc một dịch vụ khác |

Khi bị dừng bằng Ctrl-C (hoặc SIGTERM, SIGHUP), erpc kết thúc bằng chính tín hiệu đó, nên một vòng lặp trong script cũng dừng theo. Một mã đã công bố luôn giữ nguyên tên và trạng thái thoát của nó, và một mã không bao giờ được dùng lại.

## Storage và sao lưu

```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` mua một gói ERPC Global Storage, thanh toán bằng ERPC Credit. Các gói và giá có tại [Bảng giá](https://erpc.global/vi/price/).

### erpc storage

- `erpc storage put` mã hóa tệp trên máy này trước khi gửi đi bất kỳ phần nào của tệp, trừ khi có `--no-encrypt`. ERPC chỉ lưu các byte đã mã hóa và không bao giờ giữ khóa. `erpc storage get` nhận biết tệp đã mã hóa và giải mã tệp đó.
- Mỗi tài khoản có một khóa storage, được giữ ở nơi lưu mà `erpc login` đã chọn. erpc không giữ khóa này trong keyring của kernel Linux, vốn bị mất khi khởi động lại: hãy đăng nhập với `--store 1password` hoặc `--store file`, hoặc dùng `--no-encrypt`. Với nơi lưu `file`, khóa nằm trong `~/.erpc/storage-key` (mode 0600) mà không được mã hóa. `--no-encrypt` tải lên tệp bạn đang gửi nguyên trạng, không mã hóa.
- **Mất khóa storage nghĩa là mất mọi tệp được mã hóa bằng khóa đó**, và ERPC không thể khôi phục. `erpc storage key export --show` in khóa ra để có thể giữ một bản sao ở nơi khác ngoài máy, và `erpc storage key import` nhập lại khóa đó trên một máy khác.
- ERPC có thể thấy đường dẫn nơi tệp được lưu, và kích thước của tệp.
- `erpc storage keys list` hiển thị các khóa truy cập storage, và `erpc storage keys revoke <n>` thu hồi một khóa.

### erpc backup

`erpc backup` sao lưu một máy lên ERPC Global Storage bằng restic. Tệp được mã hóa trên máy của bạn trước khi rời khỏi máy, và ERPC không bao giờ giữ mật khẩu nào mở được các bản sao lưu.

| Lệnh | Chức năng |
| --- | --- |
| `erpc backup init` | Cài đặt restic, tạo các khóa truy cập và repository, và cấp cho máy này khóa restic riêng |
| `erpc backup run [paths]` | Sao lưu. Trên Linux, khi không có đường dẫn, sao lưu `/` trừ các hệ thống tệp giả, các điểm mount và các đường dẫn chứa dữ liệu tạm thời. Trên các hệ điều hành khác, hãy chỉ định đường dẫn |
| `erpc backup snapshots` | Các snapshot của máy này; `--all-hosts` để xem snapshot của mọi máy |
| `erpc backup restore <id\|latest>` | Khôi phục vào một thư mục mới, trừ khi `--target` chỉ định thư mục khác. `--in-place` ghi đè lên máy này, sau khi hỏi |
| `erpc backup check` | Kiểm tra repository và đọc lại 5% dữ liệu |
| `erpc backup prune` | Giữ 7 snapshot hằng ngày, 4 snapshot hằng tuần và 6 snapshot hằng tháng của một máy, sau khi hỏi |
| `erpc backup schedule daily\|weekly\|off [paths]` | Chạy `run` theo bộ hẹn giờ, vào lúc `--at` (mặc định 03:00) |
| `erpc backup status` | Lịch chạy, và lần chạy gần nhất kết thúc như thế nào |
| `erpc backup password --show` | In mật khẩu chính của repository, để giữ một bản sao ở nơi khác |

- **Mỗi máy nhận một khóa chỉ cho phép ghi thêm (append-only)**; khóa này không thể xóa các bản sao lưu của chính máy đó. Máy mà bạn đã chạy `erpc backup init` cũng giữ các khóa có thể xóa, nên lớp bảo vệ này chỉ có hiệu lực trên máy không giữ phiên erpc và cũng không giữ các secret sao lưu của tài khoản.
- **Hãy giữ một bản sao của `erpc backup password --show` ở nơi khác ngoài các máy.** Mất mật khẩu chính và `backup.env` của mọi máy nghĩa là mất các bản sao lưu.
- **Bản sao lưu bỏ qua các tệp khóa và secret hệ thống đã biết**, chẳng hạn `.ssh/id_*`, `.config/solana/id.json`, phiên của erpc và các khóa host SSH. Dữ liệu khóa mang tên khác hoặc nằm ở vị trí khác sẽ được sao lưu như mọi tệp khác: hãy loại trừ chúng bằng `--exclude`.
- erpc cài đặt restic 0.19.1 và kiểm tra cả archive lẫn chương trình theo các digest SHA-256 được biên dịch sẵn trong erpc.
- **Lên lịch:** trên Linux, chạy `sudo erpc backup init`, rồi `sudo erpc backup schedule daily`. Trên macOS, chạy `erpc backup schedule daily ~/Documents`; tác vụ chạy dưới quyền của bạn, trong khi bạn đang đăng nhập.
- Bản sao lưu được gửi đến khu vực mặc định của tài khoản. `erpc backup` chạy trên chính máy mà nó sao lưu; thay vào đó, server của một worker được thiết lập bằng `erpc worker backup on` ([Sao lưu dữ liệu trạng thái của ứng dụng](https://erpc.global/vi/doc/erpc-cli/worker-status-and-billing/#sao-lưu-dữ-liệu-trạng-thái-của-ứng-dụng)).
