【问题标题】:Shell script time output over java environmentjava环境下的Shell脚本时间输出
【发布时间】:2014-03-12 08:00:22
【问题描述】:

我正在使用 sshxcute API 从 java 程序运行脚本。 脚本包含:

 #!/bin/sh
data=`stat -c%y filename`
echo $data

在 bash 上运行的脚本会给出输出:

2014-03-08 13:26:29.335545828 -0800

通过java程序运行的脚本给出输出:

2014-03-08 21:26:29.335545828 +0000

我认为-0800 正在被添加。我需要第一种格式的输出。如何解决问题?

【问题讨论】:

  • 您是否调试过您的代码并查看要运行的 ssh 命令?
  • 是的,sshexcute api 只需将脚本输出复制到字符串 sysout 并返回
  • 可能是您和远程服务器的时区差异。
  • 可以展示你的脚本吗?
  • 您可以编辑您的问题并显示整个脚本吗?

标签: java shell time


【解决方案1】:

我试过了,效果很好。也许您在获取错误文件的统计信息时遇到了一些问题。

ex.sh

filename=$1
data=`stat -c%y $filename`
echo $data

当我从控制台运行sh ex.sh x.log 时,我得到的结果如下:

 2014-03-11 16:56:21.000000000 +0200

我用 ganymed ssh api 尝试了同样的事情并得到了同样的结果。

2014-03-11 16:56:21.000000000 +0200

【讨论】:

  • 让我试试ganymed ssh api
  • 我认为这与您一直在使用的 api 无关。对我来说有两种可能:你的电脑和远程电脑之间的时区差异,或者你在检查文件时犯了一些错误。
  • 我有使用 sshexcute 编写的程序 ..如果可能的话你能把你的 java 程序发给我来运行一个脚本
  • 我将我的 java 程序时区设置为与服务器时区相同
  • 抱歉,这是不可能的。您可以在几分钟内编写一个连接代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-21
  • 2012-04-08
  • 2013-09-16
  • 2013-09-04
  • 1970-01-01
相关资源
最近更新 更多