gzip:stdin:不是gzip格式的tar:子返回状态1 tar:错误不可恢复:现在退出

Ser*_*les 20 linux bash gzip tar

我有一个bash脚本创建tar.gz并加密然后发送到驱动器.但是之后我无法打开.tar.gz.这是我的过程......

加密的Bash脚本.

#!/bin/sh

# tar the automysqlbackup directory
tar -zcf "red-backup-$(date '+%Y-%m-%d').tar.gz" /var/lib/automysqlbackup/

# encrypt the tar
openssl aes-256-cbc -a -salt -in "red-backup-$(date '+%Y-%m-%d').tar.gz" -out "red-backup-$(date '+%Y-%m-%d').tar.gz.enc" -pass 'pass:MySecretPWD'

# remove the original tar
rm -rf "red-backup-$(date '+%Y-%m-%d').tar.gz"

# upload to google drive
gdrive upload --file "red-backup-$(date '+%Y-%m-%d').tar.gz.enc" -p "jofhriout849uioejfoiu09"
Run Code Online (Sandbox Code Playgroud)

然后我下载文件并使用

sudo openssl aes-256-cbc -e -in red-backup-2016-09-22.tar.gz.enc -out red-backup-2016-09-22.tar.gz
Run Code Online (Sandbox Code Playgroud)

然后我输入我的文件的密码两次,我现在得到一个名为的文件

red-backup-2016-09-22.tar.gz
Run Code Online (Sandbox Code Playgroud)

当我尝试

sudo tar -zxvf red-backup-2016-09-22.tar.gz
Run Code Online (Sandbox Code Playgroud)

得到

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
Run Code Online (Sandbox Code Playgroud)

我也尝试重命名文件.tar并尝试

sudo tar xvf red-backup-2016-09-22.tar.gz
Run Code Online (Sandbox Code Playgroud)

sudo tar xvf red-backup-2016-09-22.tar

tar: This does not look like a tar archive
tar: Skipping to next header
tar: Exiting with failure status due to previous errors
Run Code Online (Sandbox Code Playgroud)

我出错的任何想法?

小智 29

这意味着该文件实际上并不是一个gzip压缩文件 - 或任何类型的gzip压缩文件 - 尽管它被命名为一个.

当您下载文件时wget,检查指示Length: unspecified [text/html]哪些显示它是纯文本(文本),并且它应被解释为html.检查wget下面的输出 -

[root@XXXXX opt]# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz"
--2017-10-12 12:39:40--  http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz
Resolving download.oracle.com (download.oracle.com)... 23.72.136.27, 23.72.136.67
Connecting to download.oracle.com (download.oracle.com)|23.72.136.27|:80... connected.
HTTP request sent, awaiting response... 302 Not Allowed
Location: http://XXXX/FAQs/URLFiltering/ProxyWarning.html [following]
--2017-10-12 12:39:40--  http://XXXX/FAQs/URLFiltering/ProxyWarning.html
Resolving XXXX (XXXXX)... XXX.XX.XX.XXX
Connecting to XXXX (XXXX)|XXX.XX.XX.XXX|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 17121 (17K) [text/html]
Saving to: ‘jdk-8u144-linux-x64.tar.gz’

100%[=========================================================================================================================================================================>] 17,121      --.-K/s   in 0.05s   

2017-10-12 12:39:40 (349 KB/s) - ‘jdk-8u144-linux-x64.tar.gz’ saved [17121/17121]
Run Code Online (Sandbox Code Playgroud)

这样确认您没有收到gzip文件.

对于正确的文件,wget输出将显示Length: 185515842 (177M) [application/x-gzip]如下所示的输出 -

[root@txcdtl01ss270n opt]# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz"
--2017-10-12 12:50:06--  http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz
Resolving download.oracle.com (download.oracle.com)... XX.XXX.XX.XX, XX.XX.XXX.XX
Connecting to download.oracle.com (download.oracle.com)|XX.XX.XXX.XX|:80... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://edelivery.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz [following]
--2017-10-12 12:50:06--  https://edelivery.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz
Resolving edelivery.oracle.com (edelivery.oracle.com)... XXX.XX.XXX.XX, 2600:1404:16:188::2d3e, 2600:1404:16:180::2d3e
Connecting to edelivery.oracle.com (edelivery.oracle.com)|XXX.XX.XX.XXX|:443... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz?AuthParam=1507827127_f44251ebbb44c6e61e7f202677f94afd [following]
--2017-10-12 12:50:07--  http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz?AuthParam=1507827127_f44251ebbb44c6e61
Connecting to download.oracle.com (download.oracle.com)|XX.XX.XXX.XX|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 185515842 (177M) [application/x-gzip]
Saving to: ‘jdk-8u144-linux-x64.tar.gz’

100%[=========================================================================================================================================================================>] 185,515,842 6.60MB/s   in 28s    

2017-10-12 12:50:34 (6.43 MB/s) - ‘jdk-8u144-linux-x64.tar.gz’ saved [185515842/185515842]
Run Code Online (Sandbox Code Playgroud)

以上显示gzip已下载正确的应用程序文件.

您还可以file,head,less,view实用程序来检查文件.例如,HTML文件会给出以下输出 -

[root@XXXXXX opt]# head jdk-8u144-linux-x64.tar.gz
<!doctype html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="/css/print.css" rel="stylesheet" media="print">
    <link href="/css/main.css" rel="stylesheet" media="screen">
    <link href="/css/font-awesome.min.css" rel="stylesheet">
Run Code Online (Sandbox Code Playgroud)

上面显示它确实是一个HTML页面,我们试图解压缩/解压缩 - 这是无效的.如果它确实是一个正确的zip文件(本质上是二进制文件),那么输出head就会产生垃圾 - 如下所示 -

[root@XXXX opt]# head jdk-8u144-linux-x64.tar.gz 
x?rY?[ms?F???????t?l???DR??????j
                                       $?$,`0?h?_????/??=?@Q?w+???*?Hbfz?{?~?{?i?x??k?????}????z???w????g?????{???;{s????w?????7?N????i?
?????}
?¿g????????????7??s??????î??????~i??j?/??????#???=??=>???{}??|?????????????3???X???]9??????u?????%??<^)?H?8?F?R?t?o?L?u??S%?ds5?2_EZn?t^??
                                                                                                                                                 ?N3??(??<??|'?q???R?N?gq?Uv!???p???rL??M??u??.?Q?5?T??BNw?!$??<>?7G'$?,Mt4WY?Gi"?=??p?)?VIN3????\ek??0??G
                                            ?<L?c???t-???2???G:?ia??I?<?g3???d?H????[2`?<I?A?6?W??<??C???????h??A0QL?2?4?-*
?x?????t%t1??f?>+A??,Lr?
                        ?Fe:MBH????
C?Q?r?S??<M?b?<,5???@???s???c??sp?f?=g?????k???4?}??kh)?¹Z??#d?*{???-?.N?)?e??s:?H(VQ??3*?$2??r?v?"o?_??!A???????B?l=A?|??@??0??1??5??4g?
?
???Se????H[2?????t??5?Df????$1???b$? h?Op????!Lvb!p??b?8^?Y???n?
                                                                          O??????|??lW?lu??*?N?M???
?/?^0~?~?#??q????????K??;?d???aw4?????'?~?7??ky?o?????????t?'k??f????!vo???'o???     ?.?Pn\?
               ?+??K"FA{????n2????v??!/Ok??r4?c5?x$'?.?&w?!?%??o??????2???i
                                                                               ?a0??Ag?d????GH)G7~?g???b??%?b??rt?m~?   ?????t0??   <????????????5?q?t??K(??+Z<??=???:1?\?x?p=t?`??G@F??    i?????p8?????H.???dMLE??e[?`?'n??*h[??;?0w'??6A??M?x?fpeB>&???MO???????`?@á/?"?????(??^???n??=????5??@?Mx??d:\YAn???]|?w>??S??FA9?J?k!?@?
Run Code Online (Sandbox Code Playgroud)

尝试从官方网站下载并检查他们的下载链接是否已更改.另外,请检查您的代理设置,并确保已启用正确的代理,以便wget从正确的来源下载/ 它.

希望这可以帮助.


kam*_*sar 10

首先使用以下file命令检查压缩类型:

file name_name.tgz
Run Code Online (Sandbox Code Playgroud)

O / P-如果输出为“ XZ压缩数据”

然后使用tar xf <archive name>解压缩文件,例如

  • tar xf archive.tar.xz

  • tar xf archive.tar.gz

  • tar xf archive.tar

  • tar xf archive.tgz

  • 当“file &lt;file_name&gt;”返回“POSIX tar archive (GNU)”时,同样适用。 (3认同)

Har*_*vey 6

只需首先单击该链接,然后转到实际下载或镜像所在的HTML页面。

完全链接以.tgz结尾时确实会引起误解,而实际上它会指向实际下载链接所在的HTML页面。我在下载Apache Spark并将其放入Ubuntu时遇到了问题。

https://spark.apache.org/downloads.html
Run Code Online (Sandbox Code Playgroud)

  • 下载最新版本的spark时,我遇到了同样的问题。很高兴我遇到了这个评论,帮助我解决了这个问题。 (3认同)

小智 6

首先,使用以下命令检查压缩类型: file <file_name> 如果输出是 Posix 压缩文件,请使用以下命令解压缩: tar xvf <file_name>


小智 -15

这可能是因为您的 gzip 版本不兼容。

首先检查以下几点:

哪个 gzip

/usr/bin/gzip 或 /bin/gzip

它应该是/bin/gzip/usr/bin/gzip。如果您的 gzip 指向其他 gzip 应用程序,请尝试从 PATH 环境变量中删除该路径。

接下来是

gzip-V

gzip 1.3.5 (2002-09-30)

您的问题可以通过这些检查点来解决。

  • 我的指向 **/bin/gzip**,但我仍然遇到这个问题。 (8认同)
  • 我有相同的 /bin/gzip 和 gzip -V 是 gzip 1.6,面临同样的问题...有解决办法吗? (6认同)
  • 我有相同的 /bin/gzip 和 gzip -V 是 gzip 1.5,面临同样的问题。 (3认同)