JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle® ZFS Storage Appliance 管理指南,发行版 2013.1.3.0
Oracle 技术网
文档库
PDF
打印视图
反馈
search filter icon
search icon

文档信息

关于 Oracle ZFS Storage Appliance

Oracle ZFS Storage Appliance 主要功能

支持的协议

Oracle ZFS Storage Appliance 数据服务

数据可用性

Oracle ZFS Storage Appliance 配置

浏览器用户界面 (Browser User Interface, BUI)

网络图标

显示板图标

Analytics(分析)工具栏图标

身份映射图标

受支持的浏览器

命令行界面 (Command Line Interface, CLI)

CLI 上下文

CLI 属性

使用 CLI 脚本编写工具

使用批处理命令

了解 CLI 脚本命令

访问 CLI 脚本环境

了解内置 CLI 功能

使用 Run 函数

使用 Get 函数

使用 List 函数

使用 Children 函数

使用 Choices 函数

使用用于生成输出的函数

了解 CLI 脚本错误

配置 Oracle ZFS Storage Appliance

使用服务

维护 Oracle ZFS Storage Appliance

使用共享资源

将设备与 Oracle ZFS Storage Appliance 集成

使用 List 函数

  1. 在具有动态子代的上下文中,以编程方式迭代这些子代可能非常有用。这可以使用 list 函数实现,该函数返回动态子代数组。例如,下面是迭代每个项目中每个共享资源的脚本,输出所用空间和可用空间:
    script
           run('shares');
           projects = list();
    
           for (i = 0; i < projects.length; i++) {
                   run('select ' + projects[i]);
                   shares = list();
    
                   for (j = 0; j < shares.length; j++) {
                           run('select ' + shares[j]);
                           printf("%s/%s %1.64g %1.64g\n", projects[i], shares[j],
                               get('space_data'), get('space_available'));
                           run('cd ..');
                   }
    
                   run('cd ..');
           }
  2. 下面是运行该脚本的输出(假设将其保存到名为 "space.aksh" 的文件中):
    % ssh root@koi < space.aksh
    Password: 
    admin/accounts 18432 266617007104
    admin/exports 18432 266617007104
    admin/primary 18432 266617007104
    admin/traffic 18432 266617007104
    admin/workflow 18432 266617007104
    aleventhal/hw_eng 18432 266617007104
    bcantrill/analytx 1073964032 266617007104
    bgregg/dashbd 18432 266617007104
    bgregg/filesys01 26112 107374156288
    bpijewski/access_ctrl 18432 266617007104
    ...
  3. 如果有人希望获得以上结果的“易于阅读”(虽然通过编程方式比较难处理)版本,则可以直接解析 get 命令的输出:
    script
           run('shares');
           projects = list();
    
           printf('%-40s %-10s %-10s\n', 'SHARE', 'USED', 'AVAILABLE');
    
           for (i = 0; i < projects.length; i++) {
                   run('select ' + projects[i]);
                   shares = list();
    
                   for (j = 0; j < shares.length; j++) {
                           run('select ' + shares[j]);
    
                           share = projects[i] + '/' + shares[j];
                           used = run('get space_data').split(/\s+/)[3];
                           avail = run('get space_available').split(/\s+/)[3];
    
                           printf('%-40s %-10s %-10s\n', share, used, avail);
                           run('cd ..');
                   }
    
                   run('cd ..');
           }
  4. 以下是运行该新脚本的部分输出(假设将其命名为 "prettyspace.aksh"):
    % ssh root@koi < prettyspace.aksh
    Password:
    SHARE                                    USED       AVAILABLE 
    admin/accounts                           18K        248G      
    admin/exports                            18K        248G      
    admin/primary                            18K        248G      
    admin/traffic                            18K        248G      
    admin/workflow                           18K        248G      
    aleventhal/hw_eng                        18K        248G      
    bcantrill/analytx                        1.00G      248G      
    bgregg/dashbd                            18K        248G       
    bgregg/filesys01                         25.5K      100G      
    bpijewski/access_ctrl                    18K        248G      
    ...