本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
M2SFTP 是一个 JCL 实用程序,旨在使用安全文件传输协议 (SFTP) 在系统之间执行安全的文件传输。该程序使用 Putty SFTP 客户端 psftp
来执行实际的文件传输。该程序的工作原理与大型机 FTP 实用程序类似,使用用户和密码进行身份验证。
注意
不支持使用公钥进行身份验证。
要将您的大型机 FTP JCLs 转换为使用 SFTP,请更改为PGM=FTP
。PGM=M2SFTP
主题
支持的平台
您可以在以下任何平台上使用 M2SFTP:
-
AWS 大型机现代化火箭软件(前身为 Micro Focus)托管
-
火箭软件运行时(在亚马逊上 EC2)
-
火箭软件企业开发者 (ED) 和 Rocket Software 企业服务器 (ES) 产品的所有变体。
安装依赖项
在 Windows 上安装 Putty SFTP 客户端
-
下载并安装 Putty SFTP
客户端。
在 Linux 上安装 Putty SFTP 客户端:
-
运行以下命令来安装 Putty SFTP 客户端:
sudo yum -y install putty
配置 M2SFTP 以实现 AWS 大型机现代化托管
如果您迁移的应用程序在 AWS 大型机现代化管理版上运行,则需要按如下方式配置 M2SFTP。
-
为 MFFTP 设置相应的 Rocket 企业服务器环境变量。下面是几个示例:
-
MFFTP_TEMP_DIR
-
MFFTP_SENDEOL
-
MFFTP_TIME
-
MFFTP_ABEND
您可以根据需要设置任意数量的变量。您可以在 JCL 中使用
ENVAR DD
语句设置它们。有关这些变量的更多信息,请参阅 Micro Focus 文档中的 MFFTP 控制变量。 -
要测试配置,请参阅样本 JCLs。
在亚马逊上配置 M2SFTP 以实现 AWS 大型机现代化运行时 EC2 (包括 AppStream 2.0)
如果您迁移的应用程序在 Amazon AWS 的大型机现代化运行时上运行 EC2,请按如下方式配置 M2SFTP。
-
更改 Micro Focus JES 程序路径
以包含批处理实用程序的二进制位置。如果您需要指定多个路径,请在 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
-
-
为 MFFTP 设置相应的 Rocket 企业服务器环境变量。下面是几个示例:
-
MFFTP_TEMP_DIR
-
MFFTP_SENDEOL
-
MFFTP_TIME
-
MFFTP_ABEND
您可以根据需要设置任意数量的变量。您可以在 JCL 中使用
ENVAR DD
语句设置它们。有关这些变量的更多信息,请参阅 Micro Focus 文档中的 MFFTP 控制变量。 -
要测试配置,请参阅样本 JCLs。
样本 JCLs
要测试安装,您可以使用以下其中一个示例 JCL 文件。
M2 SFTP1 .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
/*
//*
//
M2 SFTP2 .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) 客户端命令参考
PSFTP 客户端不支持所有 FTP 命令。以下列表显示了 PSFTP 支持的所有命令。
命令 | 描述 |
---|---|
! |
运行本地命令 |
bye |
完成 SFTP 会话 |
cd |
更改远程工作目录 |
chmod |
更改文件权限和模式 |
关闭 |
完成 SFTP 会话但不退出 PSFTP |
del |
删除远程服务器上的文件 |
dir |
列出远程文件 |
exit |
完成 SFTP 会话 |
get |
将文件从服务器下载到本地机器上 |
帮助 |
提供帮助 |
lcd |
更改本地工作目录 |
lpwd |
打印本地工作目录 |
ls |
列出远程文件 |
mget |
一次下载多个文件 |
mkdir |
在远程服务器上创建目录 |
mput |
一次上传多个文件 |
mv |
移动或重命名远程服务器上的文件 |
open |
连接到主机 |
put |
将文件从本地机器上传到服务器 |
pwd |
打印远程工作目录 |
quit |
完成 SFTP 会话 |
reget |
继续下载文件 |
ren |
移动或重命名远程服务器上的文件 |
reput |
继续上传文件 |
rm |
删除远程服务器上的文件 |
rmdir |
删除远程服务器上的目录 |
后续步骤
要使用 SFTP 将文件上传和下载到亚马逊简单存储服务,您可以将 M2SFTP 与结合使用 AWS Transfer Family,如以下博客文章中所述。