解决linux tar命令出现“time stamp xxx in the future”的方法

在Linux服务器上的文件会有3个时间戳信息 访问时间(Access)、修改时间(Modify)、改变时间(Change),都是存放在该文件的Inode里面。

问题描述:

有时候为了方便A服务器和B服务器之间传输多个文件,我们往往会使用Linux tar 命令进行文件压缩和解压,比如

#压缩
tar -cvf  test.zip test.txt
#解压
tar -xvf test.zip

但有时候发现在B服务器解压时会提示 “tar: xxx: time stamp 2017-09-03 08:32:34 is 444.030325759 s in the future” 大概意思就是文件的时间戳信息异常

问题分析:

tar命令在打包文件的时候会包含文件的所有属性,如时间戳、文件名、大小等等,根据 tar 命令报错的信息,tar命令在解压提取原来文件时间戳准备创建文件的时候遇到 Jenkins服务器时间 比 云服务器时间要新(in the future),就报了上面的错误。

解决办法:

方案一:
1、所有服务器 用定时任务每个几分钟就同步同一个国内公开时间服务器(ntp1.aliyun.com 国内阿里云的,或其他的都行),或者直接搭建时间同步服务器(NTP)

方案二:(推荐)
2、tar命令在解压的时候加上 -m 参数,作用是不提取压缩包里文件的修改时间,以当前系统时间为准创建时间戳。

提示:所有服务器时间应该需要一致的,不然其他服务也有可能出现时间的问题。最好是这2种方案都使用。

原文:
https://www.cnblogs.com/chenjinxi/p/7468824.html

猜你喜欢

转载自blog.csdn.net/xiao3404/article/details/131732547