小编Nap*_*Nap的帖子

gpg 错误代码 2(GPG_ERR_UNKNOWN_PACKET) 是什么意思?

我的任务是解释在我的批处理脚本之一中发生的 gpg 错误的变化。目前,当我对指定文件执行 gpg 解密时,它返回 2。问题是当我搜索表单时,它显示文件已被正确解密,但错误代码导致脚本停止,因为它只假设 0是唯一的成功价值。

gpg -o XXX --decrypt XXX.gpg
RETVAL=$?
if [ RETVAL -ne 0 ]; then
    exit 1
fi
Run Code Online (Sandbox Code Playgroud)

我在网上搜索并找到了 gpg 的标题列表。它将错误 2 定义为未知数据包。

http://www.gnu-darwin.org/www001/src/ports/security/libgpg-error/work/libgpg-error-1.5/src/err-codes.h.in

显示的正常错误文本是 [gpg: [不知道]: invalid packet (ctb=14)]。未知数据包究竟是什么意思?我正在尝试搜索有关理解错误代码的任何文档。使用 [-vv] 选项显示所有详细信息后。我将生成的 gpg 文件解密与返回 0 代码的文件进行了比较。我唯一注意到的是密钥的字节不同。

没有错误的gpg的解密有以下日志:

:pubkey enc packet: version 3, algo 16, keyid <16-hexdigit>
    data    1023 bits
    data    1024 bits
Run Code Online (Sandbox Code Playgroud)

导致错误的gpg的解密有以下日志:

:pubkey enc packet: version 3, algo 16, keyid <16-hexdigit>
    data    1022 bits
    data    1022 bits
Run Code Online (Sandbox Code Playgroud)

这是什么意思?为什么即使密钥位不相同仍然可以正确解密?请注意,用于解密这两个文件的密钥 ID 和密码是相同的。另外,有没有人知道任何关于解释 gpg 错误的详细资源。

gpg exit-status

6
推荐指数
1
解决办法
2万
查看次数

捕获 SFTP 脚本中的错误

我有一个 sub sh 文件,它接收本地目录和远程目录路径的输入,并将文件发送到远程目录。如果远程路径无效,则无法检测到错误。

sh 脚本内的示例内容:

sftp XXX@XXX.XXX.XXX.XXX <<==
cd $remote_dir                      <= error happens here
lcd $local_dir                      <= error did not happen so the return code resets
put a.tar
bye
==

$result=$?
return $result
Run Code Online (Sandbox Code Playgroud)

有些应用程序调用sh文件,然后通过返回码来判断文件是否发送成功。如果是,则将本地文件备份到某处然后将其删除。

问题是即使文件发送失败,shell 也会返回零。文件确实没有被复制,您可以看到当您手动执行命令时会发生错误,屏幕上显示找不到路径,但是当作为作业运行时,它会失败。

我知道另一种方法是执行两个步骤,首先检查路径是否存在,然后输出到日志文件并检查日志是否包含错误,如果没有错误则可以调用 sftp put shell 脚本。我想知道是否还有其他方法。

scripting sftp error-handling

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

error-handling ×1

exit-status ×1

gpg ×1

scripting ×1

sftp ×1