我们如何在一台服务器中并行运行与不同帐户的gcloud/gsutil/bq命令



我已经在一个Linux服务器中安装了gcloud/bq/gsutil命令行。我们在此服务器中配置了几个帐户。

**gcloud config configurations list**
NAME  IS_ACTIVE  ACCOUNT     PROJECT DEFAULT_ZONE  DEFAULT_REGION
gaa   True       a@xxx.com    a
gab  False       b@xxx.com    b

现在,我在同时在该服务器中运行GAA/GAB有问题。因为他们对BigQuery和Cloud Stroage具有不同的访问控制。我将使用以下命令(bq和gsutil命令(:

  1. 设置帐户

    Gcloud config set account a@xxx.com

  2. 将数据从bigquery复制到云

    bq extract --compression=GZIP --destination_format=NEWLINE_DELIMITED_JSON 'nl:82421.ga_sessions_20161219' gs://ga-data-export/82421/82421_ga_sessions_20161219_*.json.gz

  3. 将数据从云下载到本地系统

    gsutil -m cp gs://ga-data-export/82421/82421_ga_sessions_20161219*gz

如果仅运行一个帐户,那不是问题。但是有几个帐户需要同时在一台服务器上运行,我不知道如何处理这种情况。

根据配置上的gcloud文档,您可以通过--configuration标志切换任何gcloud命令的活动配置。但是,gsutil没有这样的标志。您必须设置环境变量CLOUDSDK_ACTIVE_CONFIG_NAME

$ # Shell 1
$ export CLOUDSDK_ACTIVE_CONFIG_NAME=gaa
$ gcloud # ...
$ # Shell 2
$ export CLOUDSDK_ACTIVE_CONFIG_NAME=gab
$ gsutil # ...

最新更新