美文网首页
阿里云 Cloud Shell 初体验

阿里云 Cloud Shell 初体验

作者: 那猫小帅 | 来源:发表于2018-12-13 09:06 被阅读288次

今日登陆阿里云,发现 阿里云 推出了 Cloud Shell,本以为是 一个 模拟 终端的一个小工具,体(zhe)验(teng)一番,发现 竟然 是一个 真实的 被限制的 Linux环境,基于 Alpine Linux。好兴奋,有免费的测试机玩了。。。。

image

常用命令都被软关联到了 busybox。测试了下 gcc、apt-get、yum、rpm统统没有,这样就有点鸡肋了,除了自带的工具啥都不能安装。好在默认安装了 Python、SSH、curl等工具,pip因为权限太低不能安装库。

image

看了下 shell 中的核心命令 aliyun,功能还是很强大的,基本所有 业务都可以操作

image

之前 做过 域名API 相关的开发,拿域名入手,aliyun domain –help 可以看到 域名支持的操作,点击 链接可以进入 域名的API 文档。经过测试,API中的所有操作都可以 支持(很多在 命令帮助中 看不到),比如:QueryDomainList。

image image

阿里的域名导出不太好用,用 QueryDomainList 接口,做个 域名导出工具,练练手。根据文档,必须的参数 有 PageNum、PageSize。 执行 aliyun domain QueryDomainList –PageNum 1 –PageSize 10000,就获取到了 每页10000条,第一个 的域名数据。将 输出的 JSON 信息 上传到 服务器处理(比如PHP),生成 csv 下载。

image

最终生成的文件如下:

image

完整的PHP源码如下:

<?php
     
    /**
     * 文件:domain.php
     * 作者:mqycn
     * 博客:http://www.miaoqiyuan.cn
     * 源码:http://www.miaoqiyuan.cn/p/aliyun-cloud-shell
     * 说明:阿里云 Cloud Shell 一键 导出所有域名
     */
  
    define('APP_PATH', 'http://www.miaoqiyuan.cn/products/alishell/'); //安装目录
    define('APP_URL', APP_PATH . 'domain.php'); //程序路径
    define('APP_ACTION', isset($_GET['action']) ? $_GET['action'] : ''); //请求方法
 
    //读取 YunShell 上传的信息
    $data = json_decode(file_get_contents("php://input"), true);
    if (!empty($data) && isset($data['Data']) && isset($data['Data']['Domain'])) {
 
        switch (APP_ACTION) {
 
            case 'tocsv':
                //分页上传域名数据
                if (!isset($_GET['key']) && !is_numeric($_GET['key'])) {
                    die("Key Error!");
                }
                $tmp_key = $_GET['key'];
                $csv_data = '';
                foreach ($data['Data']['Domain'] as $item) {
                    foreach ($item as $val) {
                        $csv_data .= $val . "\t";
                    }
                    $csv_data .= "\n";
                }
                $file_name = $tmp_key . '.txt';
                file_put_contents($file_name, $csv_data, FILE_APPEND);
                echo "Update: " . APP_PATH . "${file_name}";
                break;
 
            default:
                //根据 总页数 生成 脚本
                if (isset($data['TotalPageNum']) && is_numeric($data['TotalPageNum'])) {
                    $page_all = (int) $data['TotalPageNum'];
                    echo "\n\necho All:{$page_all}\n";
                    $tmp_key = date('Ymdhis');
                    for ($page_id = 1; $page_id <= $page_all; $page_id++) {
                        echo "\necho Download {$page_id}/${page_all}\n";
                        echo 'curl "' . APP_URL . '?action=tocsv&key=' . $tmp_key . '" --data "`' . "aliyun domain QueryDomainList --PageNum ${page_id} --PageSize 100" . '`"';
                    }
                }
                break;
        }
         
        //结尾输出换行,防止影响提示符
        die("\n");
    } else {
        //直接访问,输出调用命令
        echo 'curl ' . APP_URL . ' --data "`aliyun domain QueryDomainList --PageNum 1 --PageSize 100`"|bash';
    }
?>

相关文章

网友评论

      本文标题:阿里云 Cloud Shell 初体验

      本文链接:https://www.haomeiwen.com/subject/adfvhqtx.html