

AWS Mainframe Modernization Service （受管執行期環境體驗） 不再開放給新客戶使用。對於與 AWS Mainframe Modernization Service （受管執行期環境體驗） 類似的功能，探索 AWS Mainframe Modernization Service （自我管理體驗）。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[AWS 大型主機現代化可用性變更](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# M2SFTP 批次公用程式
<a name="m2sftp"></a>

M2SFTP 是一種 JCL 公用程式程式，旨在使用安全檔案傳輸通訊協定 (SFTP) 在系統之間執行安全的檔案傳輸。此程式使用 Putty SFTP 用戶端 `psftp`來執行實際的檔案傳輸。此程式的運作方式類似於大型主機 FTP 公用程式，並使用使用者和密碼身分驗證。

**注意**  
不支援公有金鑰身分驗證。

若要將您的大型主機 FTP JCLs 轉換為使用 SFTP，請將 `PGM=FTP`變更為 `PGM=M2SFTP`。

**Topics**
+ [支援平台](#m2sftp-platforms)
+ [安裝相依項目](#m2sftp-dependencies)
+ [為 AWS 大型主機現代化受管設定 M2SFTP](#m2sftp-configure-managed)
+ [在 Amazon EC22 上為大型主機現代化執行時間設定 M2SFTP （包括 WorkSpaces 應用程式） AWS](#m2sftp-configure-customer-infra)
+ [範例 JCLs](#m2sftp-jcl)
+ [Putty SFTP (PSFTP) 用戶端命令參考](#m2sftp-cmd-ref)
+ [後續步驟](#m2sftp-next)

## 支援平台
<a name="m2sftp-platforms"></a>

您可以在下列任何平台上使用 M2SFTP：
+ AWS Mainframe Modernization Rocket Software （先前稱為 Micro Focus) 受管
+ Rocket 軟體執行期 （在 Amazon EC2 上）
+ Rocket Software Enterprise Developer (ED) 和 Rocket Software Enterprise Server (ES) 產品的所有變體。

## 安裝相依項目
<a name="m2sftp-dependencies"></a>

**在 Windows 上安裝 Putty SFTP 用戶端**
+ 下載 [PuTTY SFTP](https://www.putty.org/) 用戶端並進行安裝。

**在 Linux 上安裝 Putty SFTP 用戶端：**
+ 執行下列命令來安裝 Putty SFTP 用戶端：

  ```
    sudo yum -y install putty
  ```

## 為 AWS 大型主機現代化受管設定 M2SFTP
<a name="m2sftp-configure-managed"></a>

如果您的遷移應用程式在 AWS Mainframe Modernization Managed 上執行，您將需要設定 M2SFTP，如下所示。
+ 為 MFFTP 設定適當的 Rocket Enterprise Server 環境變數。以下是幾個範例：
  + `MFFTP_TEMP_DIR`
  + `MFFTP_SENDEOL`
  + `MFFTP_TIME`
  + `MFFTP_ABEND`

  您可以設定任意數量或數量的這些變數。您可以使用 `ENVAR DD`陳述式在 JCL 中設定它們。如需這些變數的詳細資訊，請參閱 Micro Focus 文件中的 [MFFTP 控制變數](https://www.microfocus.com/documentation/enterprise-developer/ed80/ED-Eclipse/GUID-3F94BBC8-CB97-4642-A4A7-4235C0C079E2.html)。

若要測試您的組態，請參閱 [範例 JCLs](#m2sftp-jcl)。

## 在 Amazon EC22 上為大型主機現代化執行時間設定 M2SFTP （包括 WorkSpaces 應用程式） AWS
<a name="m2sftp-configure-customer-infra"></a>

如果您遷移的應用程式在 Amazon EC2 上的 AWS Mainframe Modernization 執行時間上執行，請設定 M2SFTP，如下所示。

1. 變更 [Micro Focus JES 程式路徑](https://www.microfocus.com/documentation/enterprise-developer/ed80/ED-Eclipse/GUID-BC8A1796-9EDE-48EB-8363-31C9BDE7F96B.html)，以包含批次公用程式的二進位位置。如果您需要指定多個路徑，請使用冒號 (`:`) 來分隔 Linux 上的路徑和 Windows 上的分號 (`;`)。
   + Linux：`/opt/aws/m2/microfocus/utilities/64bit`
   + Windows (32 位元）： `C:\AWS\M2\MicroFocus\Utilities\32bit`
   + Windows (64 位元）： `C:\AWS\M2\MicroFocus\Utilities\64bit`

1. 為 MFFTP 設定適當的 Rocket Enterprise Server 環境變數。以下是幾個範例：
   + `MFFTP_TEMP_DIR`
   + `MFFTP_SENDEOL`
   + `MFFTP_TIME`
   + ``MFFTP\$1ABEND

   您可以設定任意數量或數量的這些變數。您可以使用 `ENVAR DD`陳述式在 JCL 中設定它們。如需這些變數的詳細資訊，請參閱 Micro Focus 文件中的 [MFFTP 控制變數](https://www.microfocus.com/documentation/enterprise-developer/ed80/ED-Eclipse/GUID-3F94BBC8-CB97-4642-A4A7-4235C0C079E2.html)。

若要測試您的組態，請參閱 [範例 JCLs](#m2sftp-jcl)。

## 範例 JCLs
<a name="m2sftp-jcl"></a>

若要測試安裝，您可以使用下列其中一個範例 JCL 檔案。

**M2SFTP1.jcl**

此 JCL 說明如何呼叫 M2SFTP 將檔案傳送至遠端 SFTP 伺服器。請注意 `ENVVAR DD`陳述式中設定的環境變數。

```
//M2SFTP1 JOB 'M2SFTP1',CLASS=A,MSGCLASS=X,TIME=1440
//*
//* Copyright Amazon.com, Inc. or its affiliates.* 
//* All Rights Reserved.* 
//*
//*-------------------------------------------------------------------**
//* Sample SFTP JCL step to send a file to SFTP server* 
//*-------------------------------------------------------------------**
//*
//STEP01 EXEC PGM=M2SFTP,
//            PARM='127.0.0.1 (EXIT=99 TIMEOUT 300'
//*
//SYSFTPD  DD  *
RECFM FB
LRECL 80
SBSENDEOL CRLF
MBSENDEOL CRLF
TRAILINGBLANKS FALSE
/*
//NETRC    DD  *
machine 127.0.0.1 login sftpuser password sftppass
/*
//SYSPRINT DD  SYSOUT=*
//OUTPUT   DD  SYSOUT=*
//STDOUT   DD  SYSOUT=*
//INPUT    DD  *
type a
locsite notrailingblanks
cd files
put 'AWS.M2.TXT2PDF1.PDF' AWS.M2.TXT2PDF1.pdf   
put 'AWS.M2.CARDDEMO.CARDDATA.PS' AWS.M2.CARDDEMO.CARDDATA.PS1.txt
quit
/*
//ENVVAR   DD *
MFFTP_VERBOSE_OUTPUT=ON
MFFTP_KEEP=N
/*
//*
//
```

**M2SFTP2.jcl**

此 JCL 說明如何呼叫 M2SFTP 從遠端 SFTP 伺服器接收檔案。請注意 `ENVVAR DD`陳述式中設定的環境變數。

```
//M2SFTP2 JOB 'M2SFTP2',CLASS=A,MSGCLASS=X,TIME=1440
//*
//* Copyright Amazon.com, Inc. or its affiliates.* 
//* All Rights Reserved.* 
//*
//*-------------------------------------------------------------------**
//* Sample SFTP JCL step to receive a file from SFTP server* 
//*-------------------------------------------------------------------**
//*
//STEP01 EXEC PGM=M2SFTP
//*
//SYSPRINT DD  SYSOUT=*
//OUTPUT   DD  SYSOUT=*
//STDOUT   DD  SYSOUT=*
//INPUT    DD  *
open 127.0.0.1
sftpuser
sftppass
cd files
locsite recfm=fb lrecl=150
get AWS.M2.CARDDEMO.CARDDATA.PS.txt +
'AWS.M2.CARDDEMO.CARDDATA.PS2' (replace
quit
/*
//ENVVAR   DD *
MFFTP_VERBOSE_OUTPUT=ON
MFFTP_KEEP=N
/*
//*
//
```

**注意**  
我們強烈建議將 FTP 登入資料儲存在 NETRC 檔案中，並限制只有授權使用者才能存取。

## Putty SFTP (PSFTP) 用戶端命令參考
<a name="m2sftp-cmd-ref"></a>

PSFTP 用戶端不支援所有 FTP 命令。下列清單顯示 PSFTP 支援的所有命令。


| 命令 | Description | 
| --- | --- | 
|  \$1  |  執行本機命令  | 
|  再見  |  完成您的 SFTP 工作階段  | 
|  cd  |  變更您的遠端工作目錄  | 
|  chmod  |  變更檔案許可和模式  | 
|  關閉  |  完成您的 SFTP 工作階段，但不退出 PSFTP  | 
|  德爾  |  刪除遠端伺服器上的檔案  | 
|  dir  |  列出遠端檔案  | 
|  exit  |  完成您的 SFTP 工作階段  | 
|  get  |  將檔案從伺服器下載到您的本機電腦  | 
|  說明  |  提供說明  | 
|  lcd  |  變更本機工作目錄  | 
|  lpwd  |  列印本機工作目錄  | 
|  ls  |  列出遠端檔案  | 
|  mget  |  一次下載多個檔案  | 
|  mkdir  |  在遠端伺服器上建立目錄  | 
|  mput  |  一次上傳多個檔案  | 
|  mv  |  移動或重新命名遠端伺服器上的檔案 (s)  | 
|  開啟  |  連線至主機  | 
|  put  |  將檔案從本機電腦上傳至伺服器  | 
|  pwd  |  列印您的遠端工作目錄  | 
|  結束  |  完成您的 SFTP 工作階段  | 
|  重新取得  |  繼續下載檔案  | 
|  ren  |  移動或重新命名遠端伺服器上的檔案 (s)  | 
|  評價  |  繼續上傳檔案  | 
|  rm  |  刪除遠端伺服器上的檔案  | 
|  rmdir  |  移除遠端伺服器上的目錄  | 

## 後續步驟
<a name="m2sftp-next"></a>

若要使用 SFTP 將檔案上傳和下載到 Amazon Simple Storage Service，您可以搭配 使用 M2SFTP AWS Transfer Family，如下列部落格文章所述。
+ [使用 AWS SFTP 邏輯目錄建置簡單的資料分佈服務](https://aws.amazon.com/blogs/storage/using-aws-sftp-logical-directories-to-build-a-simple-data-distribution-service/)
+ [AWS Transfer for SFTP 使用 啟用密碼身分驗證 AWS Secrets Manager](https://aws.amazon.com/blogs/storage/enable-password-authentication-for-aws-transfer-for-sftp-using-aws-secrets-manager/)