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有没有工具可以将zephyr转换为velocity模板?   java在安卓 studio中从JSON响应中获取值   jvm如何在Java中设计一个好的permgen空间字符串?   java如何防止Rest webservice使用被盗令牌进行身份验证   java无法遍历列表JSTL   找不到用于ResourceServerTokenServices的java Bean SpringSecurityOauth2   java子字符串替换问题   爪哇玻璃鱼3。十、 以编程方式处理任意HTTPSession的终止   java如何检查输入是否为整数,并在最后添加一个命令来重新启动while循环?   引发java ical4j 1.0.6不可解析日期异常   Java等价于Delphi的DBCtrlGrid?   如果发生错误,java将查找下一个预期标记ANTLR 3   java自打开应用程序(创建锁屏)   java为什么netty有自己的ConcurrentHashMap?   Gradle任务中的java拉取和运行依赖项   继承与Java继承的混淆   java使用shell脚本中的版本执行jar   java我无法让Sqlite数据库与带有Maven的JavaFX应用程序IDE Eclipse包正确通信   java控制台日志未通过org打印。阿帕奇。hadoop。mapreduce。作业的waitForCompletion(true)方法   JAVAlang.NoSuchMethodError:apachestorm螺栓中的spring getrequest