Access: SSH to the array VIP as
pureuser(or via physical controller IPs). No local CLI install required — the shell is on the controllers.
Help:purehelplists all top-level commands;pureman <command>opens the man page;<command> -hshows quick usage.
1. General & System
Table
| Command | Description | Example Output |
|---|---|---|
pureversion | Purity OS version, model, and serial | Product: FlashArrayModel: FA-X20Version: Purity//FA 6.2.0 |
purehelp | List all available CLI commands | pureadmin, purealert, purearray, purecert, pureconfig, puredns, puredrive, purehgroup, purehost, purehw, purelog, pureman, puremessage, purenetwork, purepgroup, purepod, pureport, puresnmp, puresubnet, puresw, purevol |
pureman <command> | Open man page for a command | — |
pureconfig list | Generate a script to recreate the array config | purevol create my_volume --size 1Tpurehost create app_serverpurevol connect my_volume --host app_server |
pureconfig list --object | Object-only config (volumes, hosts, groups, pods) | — |
pureconfig list --all | Full config including network, policies, support | — |
2. Array Management (purearray)
Table
| Command | Description | Example Output |
|---|---|---|
purearray list | Array name, serial, firmware, uptime | Name Model Serial Version UptimeFlash1 FlashArray FA-12345 Purity//FA 6.2 120 days |
purearray list --space | Capacity and data reduction | Total Used Free Data Reduction50TB 20TB 30TB 3.0:1 |
purearray list --space --historical 30d | Capacity trend over last 30 days | — |
purearray list --controller | Controllers, model, status, firmware | — |
purearray list --connect | Remotely connected arrays for replication | — |
purearray list --connect --path | Replication connection paths | — |
purearray list --connect --throttle | Replication throttle limits | — |
purearray list --ntpserver | Configured NTP servers | — |
purearray list --syslogserver | Configured syslog servers | — |
purearray list --phonehome | PhoneHome/dial-home status | — |
purearray list --connection-key | Connection key for remote array pairing | — |
purearray monitor --interval 4 --repeat 5 | Array-wide I/O performance every 4s, 5 times | — |
purearray rename <newname> | Rename the array | Array renamed to MYARRAY001 |
purearray setattr --ntpserver time.google.com | Set NTP server | — |
purearray setattr --syslogserver log.server.com | Set syslog server | — |
purearray setattr --idle-timeout 30 | CLI idle timeout (minutes) | — |
purearray enable phonehome | Enable PhoneHome | — |
purearray disable phonehome | Disable PhoneHome | — |
purearray enable console-lock / disable console-lock | Console lock settings | — |
purearray remoteassist --status | Check Remote Assist status | active or inactive |
purearray connect --management-address <ip> --type async-replication --connection-key | Connect to remote array for async replication | Prompts for connection key |
purearray connect --management-address <ip> --type sync-replication --connection-key | Connect for sync replication | Prompts for connection key |
purearray disconnect <ip> | Disconnect remote array | — |
3. Volume Management (purevol)
Table
| Command | Description | Example Output |
|---|---|---|
purevol list | All volumes | Name Size Source Connected Hostsmy_volume 1TB - 2data_vol 500GB - 1 |
purevol list --space | Volumes with space details | — |
purevol list --snap | All snapshots | Name Size Parent Volumemy_volume.snap1 1TB my_volume |
purevol list --pending | All volumes including destroyed (pending eradication) | — |
purevol list --pending-only | Only destroyed volumes pending eradication | — |
purevol list --filter "size='20T'" | Filter volumes by size | — |
purevol list --sort created / --sort created- | Sort ascending / descending by created time | — |
purevol list --sort size / --sort size- | Sort ascending / descending by size | — |
purevol list --sort serial / --sort serial- | Sort by serial number | — |
purevol list <pattern> | Wildcard match (e.g., MY_VOL*) | — |
purevol create --size 10G <vol> | Create a 10 GB volume | Volume MY_VOLUME_001 created. |
purevol create --size 10G <vol1> <vol2> | Create multiple volumes | — |
purevol create --size 10G <vol> --bw-limit 10M | Create with bandwidth limit | — |
purevol create --size 1G <pod>::<vol> | Create volume inside a pod | — |
purevol setattr --size 2G <vol> | Expand volume to 2 GB | — |
purevol setattr --bw-limit 1M <vol> | Set bandwidth limit to 1 MB/s | — |
purevol truncate --size 1G <vol> | Shrink volume to 1 GB | — |
purevol rename <old> <new> | Rename volume | — |
purevol copy <src> <dst> | Copy volume to new volume | — |
purevol copy <src> <dst> --overwrite | Overwrite existing volume with copy | — |
purevol snap <vol> | Create snapshot | Snapshot my_volume.snap1 created. |
purevol snap <vol> --suffix PRD | Create snapshot with custom suffix | my_volume.PRD |
purevol destroy <vol> | Destroy volume (24-hr recovery window) | — |
purevol eradicate <vol> | Permanently delete destroyed volume | — |
purevol recover <vol> | Recover a destroyed volume | — |
purevol move <vol> <pod> | Move volume into a non-stretched pod | — |
purevol move <pod>::<vol> "" | Move volume out of a pod | — |
purevol connect <vol> --host <host> | Connect volume to host | — |
purevol connect <vol> --host <host> --lun 10 | Connect with specific LUN | — |
purevol connect <vol> --hgroup <hgroup> | Connect volume to host group | — |
purevol connect <vol1> <vol2> --host <host> | Connect multiple volumes to host | — |
purevol disconnect <vol> --host <host> | Disconnect volume from host | — |
purevol disconnect <vol> --hgroup <hgroup> | Disconnect from host group | — |
purevol monitor <vol> | Display I/O performance for volume | — |
4. Host Management (purehost)
Table
| Command | Description | Example Output |
|---|---|---|
purehost list | All hosts with WWN/IQN/NQN and groups | Name IQN/WWN Volumes Connectedapp_server iqn.1991-05.com.example:app1 1 |
purehost list --all | Hosts with initiators and target port mappings | — |
purehost list --connect | Only hosts with connected volumes | — |
purehost list --connect --private | Hosts with privately connected volumes | — |
purehost list --connect --shared | Hosts with shared (host group) volumes | — |
purehost list --personality | Show host personality settings | — |
purehost list --filter "wwn='1000000000000003'" | Find host by WWN | — |
purehost list <host> | Details for specific host | — |
purehost list <host> --connect | Volumes connected to a host | — |
purehost create <host> | Create host object | Host app_server created. |
purehost create <host> --wwnlist <wwn1>,<wwn2> | Create host with WWNs | — |
purehost create <host1> <host2> | Create multiple hosts | — |
purehost delete <host> | Delete host | — |
purehost rename <old> <new> | Rename host | — |
purehost setattr <host> --personality esxi | Set personality (esxi, aix, solaris, etc.) | — |
purehost setattr <host> --wwnlist <wwn> | Replace all WWNs on host | — |
purehost setattr <host> --addwwnlist <wwn> | Add WWN to host | WWN 21000024FF649B3B added to host app_server. |
purehost setattr <host> --remwwnlist <wwn> | Remove WWN from host | — |
purehost setattr <host> --wwnlist "" | Remove all WWNs | — |
purehost connect <host> --vol <vol> | Connect host to volume | — |
purehost connect <host> --vol <vol> --lun 10 | Connect with specific LUN | — |
purehost connect <host1> <host2> --vol <vol> | Connect multiple hosts to volume | — |
purehost disconnect <host> --vol <vol> | Disconnect host from volume | — |
purehost disconnect <host1> <host2> --vol <vol> | Disconnect multiple hosts | — |
5. Host Group Management (purehgroup)
Table
| Command | Description |
|---|---|
purehgroup list | List all host groups |
purehgroup list --connect | Host groups with connected volumes |
purehgroup list --connect <hgroup> | Connected volumes for a specific host group |
purehgroup list --space | Host groups with provisioned capacity and consumption |
purehgroup create <hgroup> | Create host group |
purehgroup delete <hgroup> | Delete host group |
purehgroup rename <old> <new> | Rename host group |
purehgroup setattr <hgroup> --hostlist <host1>,<host2> | Replace members |
purehgroup setattr <hgroup> --addhostlist <host1>,<host2> | Add hosts to group |
purehgroup setattr <hgroup> --remhostlist <host1>,<host2> | Remove hosts from group |
purehgroup setattr <hgroup> --hostlist "" | Remove all hosts from group |
purehgroup connect <hgroup> --vol <vol> | Connect volume to host group |
purehgroup connect <hgroup> --vol <vol> --lun 10 | Connect with specific LUN |
6. Pod Management (purepod)
Table
| Command | Description |
|---|---|
purepod list | List all pods and their arrays/status |
purepod list --mediator | Pods with mediator connectivity status |
purepod list --failover-preference | Pods with failover preference |
purepod list --footprint | Physical capacity footprint per pod |
purepod list --pending | Include destroyed pods |
purepod list --pending-only | Only destroyed pods |
purepod list --on <array> | Pods on a specific remote array |
purepod list <pod> | Details for specific pod |
purepod listobj --type array <pod> | Arrays in a pod |
purepod listobj --type vol <pod> | Volumes in a pod |
purepod create <pod> | Create pod |
purepod create <pod1> <pod2> | Create multiple pods |
purepod destroy <pod> | Destroy pod (must be empty/unstretched; 24-hr window) |
purepod eradicate <pod> | Permanently delete pod |
purepod recover <pod> | Recover destroyed pod |
purepod rename <old> <new> | Rename pod |
purepod clone <src> <dst> | Clone pod (new serials/WWNs) |
purepod demote <pod> | Demote pod |
purepod add --array <remote> <pod> | Stretch pod to remote array |
purepod remove --array <remote> <pod> | Unstretch pod from remote array |
purepod setattr --failover-preference <array> <pod> | Set failover preference |
purepod replica-link create <pod> --remote <array> --remote-pod <pod> | Create Active/DR replica link |
purepod replica-link delete <pod> --remote-pod <pod> | Delete replica link |
purepod replica-link list | List replica links |
purepod replica-link pause <pod> --remote <array> --remote-pod <pod> | Pause replication |
purepod replica-link resume <pod> --remote <array> --remote-pod <pod> | Resume replication |
purepod replica-link monitor --replication | Monitor replication throughput |
7. Protection Group Management (purepgroup)
Table
| Command | Description |
|---|---|
purepgroup list | List all protection groups |
purepgroup create <pgroup> | Create protection group |
purepgroup create --hgrouplist <hg1>,<hg2> <pgroup> | Create with host groups |
purepgroup create --vollist <v1>,<v2> <pgroup> | Create with volumes |
purepgroup destroy <pgroup> | Destroy protection group |
purepgroup eradicate <pgroup> | Permanently delete |
purepgroup recover <pgroup> | Recover destroyed group |
purepgroup rename <old> <new> | Rename protection group |
purepgroup schedule --snap-frequency 1h --replicate-frequency 4h <pgroup> | Set snapshot and replication schedule |
purepgroup retain --per-day 4 --all-for 1d --days 7 --target-per-day 4 --target-all-for 1d --target-days 7 <pgroup> | Set retention policy |
purepgroup setattr <pgroup> --addvollist <v1> | Add volumes to group |
purepgroup setattr <pgroup> --remvollist <v1> | Remove volumes from group |
8. Hardware & Drive Management
Drives (puredrive)
Table
| Command | Description | Example Output |
|---|---|---|
puredrive list | All drives | Bay Type Capacity Status1 NVMe 3.84TB Healthy |
puredrive list --total | Drives with total capacity | — |
puredrive list <bay> | Specific drive details | — |
puredrive admit | Admit unadmitted drives | Drive in Bay 4 admitted. |
Hardware (purehw)
Table
| Command | Description | Example Output |
|---|---|---|
purehw list | All hardware components and status | Component Status Model SerialController 0 OK FA-X20 CT0SN12345 |
purehw list --spec | Detailed specs (model, part number, serial) | Model: FlashArray-X20Firmware: Purity//FA 6.2.0 |
purehw list --type bay | Drive modules only | — |
purehw list --type bay --spec | Drive modules with part/serial | — |
purehw list --type ct | Controllers only | — |
purehw list --type eth | Ethernet ports | — |
purehw list --type fc | FC ports with status and speed | — |
purehw list <component> | Specific component (e.g., CT0, CT0.FC0) | — |
purehw list <component> --spec | Specs for specific component | — |
9. Port Management (pureport)
Table
| Command | Description |
|---|---|
pureport list | All target ports (FC, iSCSI, NVMe) with WWN/IQN/NQN |
pureport list --initiator | All host initiators and eligible target ports |
pureport list --initiator --raw --filter "initiator.wwn='...'" | Find initiator login port |
pureport list --initiator --raw --filter "name='CT0.FC0'" | Initiators logged into a specific port |
pureport list --raw --filter "name='*ETH*'" | All iSCSI ports and IQNs |
pureport list --raw --filter "name='*FC*'" | All FC ports and WWNs |
pureport list --raw --filter "name='CT0.FC*'" | FC ports on Controller 0 |
10. Network Management (purenetwork)
Table
| Command | Description |
|---|---|
purenetwork list | All network interfaces |
purenetwork list --notitle | List without headers (useful for scripting) |
purenetwork list --csv | CSV output for export |
11. Admin & User Management (pureadmin)
Table
| Command | Description |
|---|---|
pureadmin list | All local users |
pureadmin list --api-token | Users with API tokens |
pureadmin list --api-token --expose | Expose current user’s API token |
pureadmin list --lockout | Currently locked-out users |
pureadmin create <user> --role <role> | Create user (readonly, ops_admin, storage_admin, array_admin) |
pureadmin create <user> --api-token | Generate API token |
pureadmin create <user> --api-token --timeout 2h | Token valid for 2 hours |
pureadmin delete <user> | Delete user |
pureadmin delete <user> --api-token | Delete user’s API token |
pureadmin delete --api-token | Delete current user’s API token |
pureadmin setattr <user> --password | Change user password |
pureadmin setattr <user> --role array_admin | Change user role |
pureadmin reset <user> --lockout | Unlock locked user |
pureadmin refresh --clear | Clear permission cache for all users |
pureadmin refresh --clear <user> | Clear cache for specific user |
pureadmin refresh <user> | Refresh permission cache for user |
Global Admin Settings
Table
| Command | Description |
|---|---|
pureadmin global list | Global attributes (lockout, password policy, SSO) |
pureadmin global setattr --min-password-length 8 | Minimum password length |
pureadmin global setattr --max-login-attempts 3 | Max failed attempts before lockout |
pureadmin global setattr --lockout-duration 1m | Lockout duration |
pureadmin global enable --single-sign-on | Enable SSO |
pureadmin global disable --single-sign-on | Disable SSO |
12. Alert Management (purealert)
Table
| Command | Description | Example Output |
|---|---|---|
purealert list | All alerts | ID Severity Message Time12345 Critical Volume disconnected 2025-01-17 12:00:00 |
purealert list --filter "severity='critical'" | Critical alerts only | — |
purealert list --filter "state='open'" | Open alerts | — |
purealert list --filter "state='closed'" | Closed alerts | — |
purealert list --filter "issue='failure'" | Failure alerts | — |
purealert list --flagged | Flagged alerts | — |
purealert flag <id> | Flag an alert | — |
purealert unflag <id> | Unflag an alert | — |
purealert delete <id> | Delete an alert | Alert ID 12345 deleted. |
13. Audit & Logging
Table
| Command | Description |
|---|---|
pureaudit list | All administrative audit records |
pureaudit list --limit 10 | First 10 records |
pureaudit list --sort user | Sort by user (default is time) |
pureaudit list --filter 'user="root"' | Audit records for root |
pureaudit list --filter 'command="purepod"' | Records for purepod commands |
pureaudit list --filter 'command="purepod" and user="pureuser"' | Combined filters |
puremessage list --audit | Audit trail of commands (who did what and when) |
14. Software & Certificates
Table
| Command | Description |
|---|---|
puresw list | Software version info |
puresw global disable --auto-download | Disable automatic software downloads |
purecert setattr --self-signed --key-size 2048 --organization 'Pure Storage, Inc.' --days 3650 | Generate self-signed certificate |
puredns list | DNS configuration |
puresnmp list | SNMP configuration |
puresubnet list | Subnet configuration |
15. Common Scripting Patterns
Export config for disaster recovery:
bash
pureconfig list --all > array_config_backup.txtFind who destroyed a volume:
bash
puremessage list --audit | grep -E "ID|vol1"Get all array IPs for inventory:
bash
for i in flasharray001 flasharray002; do
ssh pureuser@$i "purenetwork list --notitle" | cut -d ',' -f4
doneExport hardware serials to CSV:
bash
purehw list --type bay --spec --csv | cut -d ',' -f1,7Connect via SSH non-interactively:
bash
sshpass -p <password> ssh pureuser@<array_vip> "purevol list"PureStorage Commands with output
PureStorage General Commands
Command: pureversion
Description: Displays the Purity OS version installed on the array.
Output:
Product: FlashArray
Model: FA-X20
Version: Purity//FA 6.2.0
Command: pureconfig list
Description: Generates a script to recreate the array configuration.
Output:
purevol create my_volume --size 1T
purehost create app_server
purevol connect my_volume --host app_server
purearray set --ntpserver ntp.example.com
PureStorage Array Management
Command: purearray list
Description: Displays array details like name, serial number, and firmware version.
Output:
Name Model Serial Version Uptime
-----------------------------------------------------------
Flash1 FlashArray FA-12345 Purity//FA 6.2 120 days
Command: purearray list --space
Description: Shows capacity usage details of the array.
Output:
Total Used Free Data Reduction
---------------------------------------------
50TB 20TB 30TB 3.0:1
PureStorage Volume Management
Command: purevol list
Description: Lists all volumes on the array.
Output:
Name Size Source Connected Hosts
------------------------------------------------
my_volume 1TB - 2
data_vol 500GB - 1
Command: purevol snap my_volume
Description: Creates a snapshot of the specified volume.
Output:
Snapshot my_volume.snap1 created.
Command: purevol list --snap
Description: Lists all snapshots.
Output:
Name Size Parent Volume
----------------------------------------
my_volume.snap1 1TB my_volume
data_vol.snap1 500GB data_vol
PureStorage Host Management
Command: purehost list
Description: Lists all hosts connected to the array.
Output:
Name IQN/WNN Volumes Connected
--------------------------------------------------------------
app_server iqn.1991-05.com.example:app1 1
db_server iqn.1991-05.com.example:db1 2
Command: purehost create app_server
Description: Creates a new host.
Output:
Host app_server created.
Command: purehost addwwn app_server --wwn 21000024FF649B3B
Description: Adds a WWN to the specified host.
Output:
WWN 21000024FF649B3B added to host app_server.
PureStorage Drive Management
Command: puredrive list
Description: Lists all drives in the array.
Output:
Bay Type Capacity Status
------------------------------
1 NVMe 3.84TB Healthy
2 NVMe 3.84TB Healthy
3 NVMe 3.84TB Healthy
Command: puredrive admit
Description: Admits unadmitted drives into the array.
Output:
Drive in Bay 4 admitted.
PureStorage Hardware Management
Command: purehw list
Description: Lists all hardware components.
Output:
Component Status Model Serial
-----------------------------------------------
Controller 0 OK FA-X20 CT0SN12345
Controller 1 OK FA-X20 CT1SN12345
Drive Bay 1 OK NVMe BAY1SN123
Command: purehw list --spec
Description: Displays detailed hardware specifications.
Output:
Model: FlashArray-X20
Firmware: Purity//FA 6.2.0
Part Number: FA-X20-12345
Serial: FA-12345
PureStorage Alert Management
Command: purealert list
Description: Lists all alerts in the array.
Output:
ID Severity Message Time
--------------------------------------------------------------------
12345 Critical Volume disconnected unexpectedly 2025-01-17 12:00:00
67890 Warning Latency increased above threshold 2025-01-17 10:00:00
Command: purealert delete 12345
Description: Deletes a specific alert.
Output:
Alert ID 12345 deleted.