GVKun编程网logo

来自 linux 的 iSeries AS400 的 FTP bash 脚本(ftp脚本shell)

4

这篇文章主要围绕来自linux的iSeriesAS400的FTPbash脚本和ftp脚本shell展开,旨在为您提供一份详细的参考资料。我们将全面介绍来自linux的iSeriesAS400的FTPb

这篇文章主要围绕来自 linux 的 iSeries AS400 的 FTP bash 脚本ftp脚本shell展开,旨在为您提供一份详细的参考资料。我们将全面介绍来自 linux 的 iSeries AS400 的 FTP bash 脚本的优缺点,解答ftp脚本shell的相关问题,同时也会为您带来App Connect Enterprise JDBC 连接到使用 JTOpen 的 AS400、AS400 / IBM i DB2 元数据库驱动程序、AS400 DB2 SQL-0181 日期、时间或时间戳中的值无效、AS400 DB2 SQL7008:通过 Spring Boot 插入记录时,表名对操作无效的实用方法。

本文目录一览:

来自 linux 的 iSeries AS400 的 FTP bash 脚本(ftp脚本shell)

来自 linux 的 iSeries AS400 的 FTP bash 脚本(ftp脚本shell)

如何解决来自 linux 的 iSeries AS400 的 FTP bash 脚本

我在 nodejs 后端应用程序中有一个 bash 脚本,我需要它来通过 FTP 执行 Iseries as400 指令

cln

问题在于执行时,它返回:

#!/usr/bin/bash

host=''www.hosting.com''
user=''username''
pass=''password''

ftp -inv $host << EOF

user $user $pass

QUOTE RCMD CHGUSRPRF USRPRF(USEREXAMPLE) STATUS(*disABLED)

bye

EOF

如果我从 Windows 运行脚本它可以工作,但它在 linux 上失败

我是否应该在 linux 上安装任何依赖项以使其成功运行?

感谢您的帮助

解决方法

ftp 适用于我从 bash 命令行到 ibm i:

steve@DESKTOP-MQ27OQB:/mnt/c/Users/srich/downloads/steve$ ftp 172.16.1.254
Connected to 172.16.1.254.
220 Connection will close if idle more than 5 minutes.
Name (172.16.1.254:steve): srichter
331 Enter password.
Password:
230 SRICHTER logged on.
Remote system type is .
ftp> quote rcmd sndmsg msg(abc) tousr(*sysopr)
250 Command sndmsg msg(abc) tousr(*sysopr) successful.
ftp> quote rcmd chgusrprf usrprf(srichter) status(*enabled)
550-Error occurred on command chgusrprf usrprf(srichter) status(*enabled).
550 *SECADM required to create or change user profiles..

你能在 bash 脚本之外运行 FTP,一次一个命令吗?

,

FTP 是一种文件传输协议。如果要执行命令,则需要使用 SSH。

您的错误不是 linux 或 bash 错误,而是 ftp 错误。 ftpd(FTP 守护进程)不会说 AS400。

通过 ssh 连接,并在 AS400 机器上提供的 shell 中输入有效命令。类似的东西:

ssh user@server command

这会以“user”的身份连接到名为“server”的主机并执行“command”。您应该研究 ssh,或许可以在 google man ssh 上搜索 man 文件的在线版本。

App Connect Enterprise JDBC 连接到使用 JTOpen 的 AS400

App Connect Enterprise JDBC 连接到使用 JTOpen 的 AS400

如何解决App Connect Enterprise JDBC 连接到使用 JTOpen 的 AS400

我配置了一个策略文件,当我尝试连接到数据库时,我收到 MBException,说 java.sql.Connection 为空。

使用 DriverManager 获取连接时出现异常,提示该 URL 没有合适的驱动程序。如何添加 jtopen jar?

还有什么我想念的吗?

AS400 / IBM i DB2 元数据库驱动程序

AS400 / IBM i DB2 元数据库驱动程序

如何解决AS400 / IBM i DB2 元数据库驱动程序

我尝试为元数据库添加 AS400 / IBM i DB2 驱动程序(来自 https://github.com/damienchambe/metabase-db2-driver)

我在本地安装 Metabase,编译用于构建驱动程序

  1. sudo wget https://github.com/Metabase/Metabase/archive/master.zip
  2. unzip
  3. cd Metabase-master
  4. lein install-for-building-drivers

我还尝试使用新建的元数据库作为依赖项来构建 DB2 驱动程序

  1. sudo wget https://github.com/damienchambe/Metabase-db2-driver/archive/master.zip
  2. unzip
  3. cd Metabase-db2-driver-master
  4. lein clean
  5. DEBUG=1 LEIN_SNAPSHOTS_IN_RELEASE=true lein uberjar

但是当我吃完最后一个命令时出现此错误消息

  1. Leiningen''s classpath: :/usr/share/java/leiningen-2.8.1.jar
  2. Applying task uberjar to []
  3. Applying task javac to nil
  4. Running javac with [-target 1.8 -source 1.8 @/tmp/.leiningen-cmdline1894825082081987338.tmp]
  5. Applying task compile to nil
  6. Compiling Metabase.driver.db2
  7. Syntax error compiling at (Metabase/driver/db2.clj:112:1).
  8. Syntax error compiling at (Metabase/driver/db2.clj:112:1).
  9. No such var: driver/date-add
  10. Full report at:
  11. /tmp/clojure-6001965880117386123.edn
  12. Compilation Failed: Subprocess Failed

提前感谢您的帮助

AS400 DB2 SQL-0181 日期、时间或时间戳中的值无效

AS400 DB2 SQL-0181 日期、时间或时间戳中的值无效

如何解决AS400 DB2 SQL-0181 日期、时间或时间戳中的值无效

我正在使用使用 jt400 10.5 jar 查询 DB2 数据库的 Grails 应用程序。我们有一个 sql 语句,可以将儒略日期 YYYYDDD 转换为公历日期以显示在网站上。但是,我们最近有一个日期,并且似乎是任何大于 2040001 的日期都提供了此错误跟踪。

我正在执行的 sql 是这样的,其中 DELAPPT 是儒略日期。

  1. date(to_date(VARCHAR_FORMAT(DATE(TIMESTAMP_FORMAT(CHAR(DELAPPT),''YYYYDDD'')),''MM/DD/YYYY''),''MM/DD/YYYY''))
  2. end as "delAppt"
  1. Caused by: java.sql.sqlException: [sql0181] Value in date,time,or timestamp string not valid.
  2. at

此语句在查询 DB2 的 IBM ACS Run sql Scripts 应用程序中适用于这些日期,但通过 JT400,当日期达到 2040001 及更大时,它似乎抛出此错误。我已经尝试了几种不同的方法在诸如 date(digits(DELAPPT)) 之类的语句中执行此转换,但我仍然遇到同样的错误。有什么想法吗?

解决方法

2040 年是这里的危险信号...

确保您拥有 JDBC connection configured 到 ISO 格式(或其他 4 位数年份)的日期。

ACS 也使用 JT400,因为 ACS 可以工作,所以您已经在那里使用了 4 位年份格式。但如果您将其更改为 2 位数年份,您将能够重现该错误。

AS400 DB2 SQL7008:通过 Spring Boot 插入记录时,表名对操作无效

AS400 DB2 SQL7008:通过 Spring Boot 插入记录时,表名对操作无效

如何解决AS400 DB2 SQL7008:通过 Spring Boot 插入记录时,表名对操作无效

我们在 DB2 中有由 OS/400 命令直接创建的模式/库。因此,如果我们要新创建,默认情况下不会为任何物理文件(表)启用日志记录。我们正在使用像 liquibase 这样的数据库迁移工具来进行所有数据库更改,例如在 Spring Boot 中创建表/视图。在尝试插入或更新时,出现错误“java.sql.sqlException: [sql7008] X in TABLE_NAME not valid for operation”。此错误是由于未通过 liquibase 在新创建的表上进行日志记录所致。现在,我试图找到以下可能性如果可用

  1. 是否有可能在 OS/400 中创建的 DB2 库 9created 下创建表 (sql),以便在插入或更新时不需要日志记录?
  2. 是否有可能通过 Java/Spring Boot 在表上创建日志?
  3. 或者有什么建议而不是每次在 DB2 端记录表?

请提出您的意见

解决方法

使用提交控制(事务隔离)时,需要对表进行日志记录。

您有两个选择:

  1. 关闭承诺控制
  2. 为表格开启日记功能

对于选项 1,您可以包括
transaction isolation=none;
在连接字符串中,查看 this question 了解更多详情

对于选项 2,如果您使用 SQL CREATE SCHEMACREATE TABLE 命令来创建库和文件,那么表将被自动记录。

您还可以在通过创建库 (CRTLIB) 命令创建库后使用 Start Journal Library (STRJRNLIB) 命令。此后,当您在库中创建表或物理文件时,它会自动记录。

关于来自 linux 的 iSeries AS400 的 FTP bash 脚本ftp脚本shell的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于App Connect Enterprise JDBC 连接到使用 JTOpen 的 AS400、AS400 / IBM i DB2 元数据库驱动程序、AS400 DB2 SQL-0181 日期、时间或时间戳中的值无效、AS400 DB2 SQL7008:通过 Spring Boot 插入记录时,表名对操作无效的相关信息,请在本站寻找。

本文标签: