z/OS大型机FTPLIB子类

zosftplib的Python项目详细描述


ftp子类,它添加了一些大型机z/os特性,如作业提交、sql/db2查询的执行,…

用法

import zosftplib
Myzftp = zosftplib.Zftp(mvshost, mvsuser, passwd,
                        timeout=500.0, sbdataconn='(ibm-1147,iso8859-1)')

功能

提交sql/db2查询并检索其输出

with open('/tmp/systables.csv', 'w') as outfile:
    for line in Myzftp.exec_sql("SELECT * FROM SYSIBM.SYSTABLES WITH UR"):
        outfile.write(';'.join(line.split()) + '\n')

提交批处理作业,等待其输出

# easy job for zos:
job = Myzftp.submit_wait_job('//IBMUSERX JOB MSGLEVEL(1,1)\n'
                             '//STEP001 EXEC PGM=IEFBR14',
                              purge=True)
print "rc:", job["rc"], "Jes status:", job["status"]
for line in job["output"]:
    print line

This produces the following output:

rc: RC=0000 Jes status: OUTPUT (job purged)
1                         J E S 2  J O B  L O G  --  S Y S T E M  S Y S 1  --  N O D E  N 1
0
 17.49.35 JOB03914 ---- WEDNESDAY, 27 NOV 2013 ----
 17.49.35 JOB03914  IRR010I  USERID IBMUSER  IS ASSIGNED TO THIS JOB.
 17.49.35 JOB03914  ICH70001I IBMUSER  LAST ACCESS AT 17:47:56 ON WEDNESDAY, NOVEMBER 27, 2013
 17.49.35 JOB03914  $HASP373 IBMUSERX STARTED - INIT 1    - CLASS A - SYS SYS1
 17.49.35 JOB03914  IEF403I IBMUSERX - STARTED - TIME=17.49.35
 17.49.35 JOB03914  IEF404I IBMUSERX - ENDED - TIME=17.49.35
 17.49.35 JOB03914  $HASP395 IBMUSERX ENDED
0------ JES2 JOB STATISTICS ------
-  27 NOV 2013 JOB EXECUTION DATE
-            2 CARDS READ
-           24 SYSOUT PRINT RECORDS
-            0 SYSOUT PUNCH RECORDS
-            1 SYSOUT SPOOL KBYTES
-         0.00 MINUTES EXECUTION TIME
  END OF JES SPOOL FILE
        1 //IBMUSERX JOB MSGLEVEL(1,1)                                            JOB03914
        2 //STEP001 EXEC PGM=IEFBR14
  END OF JES SPOOL FILE
 ICH70001I IBMUSER  LAST ACCESS AT 17:47:56 ON WEDNESDAY, NOVEMBER 27, 2013
 IEF142I IBMUSERX STEP001 - STEP WAS EXECUTED - COND CODE 0000
 IEF373I STEP/STEP001 /START 2013331.1749
 IEF374I STEP/STEP001 /STOP  2013331.1749 CPU    0MIN 00.01SEC SRB    0MIN 00.00SEC VIRT     4K SYS   232K EXT       0K SYS   10780K
 IEF375I  JOB/IBMUSERX/START 2013331.1749
 IEF376I  JOB/IBMUSERX/STOP  2013331.1749 CPU    0MIN 00.01SEC SRB    0MIN 00.00SEC

z/OS目录和jes spool信息

for x in Myzftp.list_catalog('SYS1.*'):
    print x["Dsname"], x["Dsorg"], x["Used"], "tracks"

# print all "ACTIVE" jobs:
for job in Myzftp.list_jes_spool('', '', 'ACTIVE'):
    print job

This produces the following output:

JOBNAME  JOBID    OWNER    STATUS CLASS
BPXAS    STC04218 START2   ACTIVE STC
PORTMAP  STC04182 START2   ACTIVE STC
BPXAS    STC04179 START2   ACTIVE STC
NFSC     STC04171 START2   ACTIVE STC
CICSA    STC04170 START2   ACTIVE STC
TCPIP    STC04162 TCPIP    ACTIVE STC
TN3270   STC04163 START2   ACTIVE STC
SDSF     STC04160 START2   ACTIVE STC      1 spool files
TSO      STC04158 START1   ACTIVE STC      1 spool files
INIT     STC04157 START2   ACTIVE STC
TCPIP    STC04162 TCPIP    ACTIVE STC
VTAM     STC04147 START1   ACTIVE STC
RACF     STC04164 START2   ACTIVE STC
...

检索数千个成员

Myzftp.get_members('SYS1.PARMLIB', '/tmp/parmlib/')

Myzftp.get_members('SYS1.LINKLIB', '/tmp/linklib/',
                   members='*', retr='binary', ftp_threads=10)

获取/放置顺序文本/二进制z/os文件

Myzftp.download_binary('SYS1.MAN1', '/tmp/smf.bin')

Myzftp.upload_text('/tmp/bigdata.txt', 'IBMUSER.BIGDATA',
                   sitecmd='lrecl=1024 cyl pri=500 sec=100')

安装

该软件包作为PIP软件包提供:

$ sudo pip install zosftplib

或使用简易安装:

$ sudo easy_install zosftplib

变更日志

2.0 - (2019-01-15) 1.0 - (2013-11-25) Initial release.

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何在java中使用REST/SOAP获取联邦快递的跟踪细节?   安卓将项目同步到github不会同步java源文件   JavaImpala通过jdbc使元数据无效   java如何在安卓中使用Chaquopy显示加载动画   java我应该使用void函数,但我不知道如何使用   java合并两个排序的ArrayList   通过点击ImageView在Android上生成java随机图像   java深度优先搜索错误   java在子类中初始化时设置泛型参数   java安卓:NFC意图在主项目所依赖的库中   java SSL错误证书错误   访问RadioButton数组时出现java Android NullPointerException   无法加载JNI共享库“C:\Program Files\Java\jdk1.7.0\U 40\bin\..\jre\bin\server\jvm.dll”   java如何检查jstl中是否存在hashmap值