标签: time

Linux 中的时区设置

我通过将 zoneinfo 文件复制到/etc/localtime,将 Linux 机器上的时区设置为 GMT+6 ,但该date命令仍将时间显示为UTCtime-6. 任何人都可以向我解释这种行为吗?

我假设date命令应该显示UTCtime+6时间。以下是我正在执行的步骤:

date
Wed Jan 22 17:29:01 IST 2014

date -u
Wed Jan 22 11:59:01 UTC 2014

cp /usr/share/zoneinfo/Etc/GMT+6 /etc/localtime

date
Wed Jan 22 05:59:21 GMT+6 2014

date -u
Wed Jan 22 11:59:01 UTC 2014
Run Code Online (Sandbox Code Playgroud)

linux date time timezone

182
推荐指数
3
解决办法
70万
查看次数

为什么 scp 这么慢以及如何使它更快?

我正在尝试复制一批文件,scp但速度很慢。这是一个包含 10 个文件的示例:

$ time scp cap_* user@host:~/dir
cap_20151023T113018_704979707.png    100%  413KB 413.2KB/s   00:00    
cap_20151023T113019_999990226.png    100%  413KB 412.6KB/s   00:00    
cap_20151023T113020_649251955.png    100%  417KB 416.8KB/s   00:00    
cap_20151023T113021_284028464.png    100%  417KB 416.8KB/s   00:00    
cap_20151023T113021_927950468.png    100%  413KB 413.0KB/s   00:00    
cap_20151023T113022_567641507.png    100%  413KB 413.1KB/s   00:00    
cap_20151023T113023_203534753.png    100%  414KB 413.5KB/s   00:00    
cap_20151023T113023_855350640.png    100%  412KB 411.7KB/s   00:00    
cap_20151023T113024_496387641.png    100%  412KB 412.3KB/s   00:00    
cap_20151023T113025_138012848.png    100%  414KB 413.8KB/s   00:00    
cap_20151023T113025_778042791.png    100%  413KB 413.4KB/s   00:00    

real    0m43.932s
user    0m0.074s
sys 0m0.030s
Run Code Online (Sandbox Code Playgroud)

奇怪的是,传输速率大约为 413KB/s,文件大小大约为 413KB,所以它真的应该每秒传输一个文件,但是每个文件大约需要 4.3 秒。

知道这种开销从何而来,有没有办法让它更快?

scp time batch-jobs

88
推荐指数
6
解决办法
17万
查看次数

如何测量程序执行时间并将其存储在变量中

为了找出 Bash (v4+) 脚本中的某些操作需要多长时间,我想time“单独”解析命令的输出,并(最终)在 Bash 变量 ( let VARNAME=...) 中捕获它。

现在,我正在使用time -f '%e' ...(或者更确切地说command time -f '%e' ...是因为内置了 Bash),但是由于我已经重定向了执行命令的输出,我真的不知道我将如何捕获time命令的输出。基本上这里的问题是到输出分离time从被执行的命令(或多个)的输出。

我想要的是计算启动命令和完成命令之间的时间(以秒为单位)的功能。它不必是time命令或相应的内置命令。


编辑:鉴于以下两个有用的答案,我想添加两个说明。

  1. 我不想丢弃已执行命令的输出,但它最终是在 stdout 还是 stderr 上并不重要。
  2. 我更喜欢直接方法而不是间接方法(即直接捕获输出而不是将其存储在中间文件中)。

date到目前为止使用的解决方案接近我想要的。

bash shell-script time

75
推荐指数
5
解决办法
17万
查看次数

“top”使用什么时间单位?

如果我发出“top”命令并收到如下结果:

PID   USER  PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND   
00001 bob   25   0 77380 1212 1200 R 95.8  0.0  89122:13 fee         
00002 bob   25   0 77380 1196 1184 R 95.4  0.0  88954:14 fi         
00003 sam   18   0  427m  16m 6308 R 30.0  0.1  54:46.43 fo         
00004 sam   18   0  427m  16m 6308 R 26.5  0.1  52:55.33 fum         
Run Code Online (Sandbox Code Playgroud)

问题: “TIME+”列中的单位是什么?

我尝试过的:(请提出一个更好的搜索文档的策略......)

  • man top | grep -C 4 time 或者
  • man top | grep <X>当我替补minute …

man top time

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

为什么 Unix 时间从 1970-01-01 开始?

为什么 Unix 时间从 1970-01-01 开始?为什么不是 1971-01-01 或任何其他日期?

history time

57
推荐指数
3
解决办法
8万
查看次数

运行指定时间的命令,如果时间超过则中止

我想知道如何在指定的时间内运行命令,比如一分钟,如果它没有完成执行,那么我应该能够停止它。

linux timeout time

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

Linux bash 中的日期时间

我正在尝试以以下形式显示日期时间

07/08/2013 16:52:13

通过在 bash 脚本中使用命令:

dt=`date '+%d/%m/%Y_%H:%M:%S'`
Run Code Online (Sandbox Code Playgroud)

哪个变量用于填充 CSV 文件。

接受的唯一字符是日期和时间之间的“_”(下划线)或“-”,输出为

07/08/2013_16:52:13

如何在日期和时间之间获得一个空格?我几乎(我希望)尝试了一切。

date time

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

您如何计算命令运行所需的时间?

你如何知道一个正在运行的进程需要多长时间才能完成?

例子:

 date; dd bs=1m if=/foo of=bar; date
Run Code Online (Sandbox Code Playgroud)

^这个例子只有 1 秒的分辨率。

任何外壳都是可以接受的。

bash date time

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

为什么实时可以低于用户时间

我有一个转换视频文件的脚本,我在服务器上根据测试数据运行它并通过time. 结果我看到:

real    2m48.326s
user    6m57.498s
sys     0m3.120s
Run Code Online (Sandbox Code Playgroud)

为什么实时时间远低于用户时间?这与多线程有什么联系吗?或者还有什么?

编辑:我认为该脚本大约运行了 2 分钟 48 秒

time

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

为什么 Linux 中的文件系统时间总是比系统时间晚一些毫秒?

在Linux中,文件系统时间似乎总是落后系统时间几毫秒,如果您想检查文件是否在给定时间之前或之后在非常窄的时间范围(毫秒)内被修改,则会导致不一致。

在任何具有支持纳秒分辨率的文件系统的 Linux 系统中(我尝试使用具有 256 字节 inode 和 ZFS 的 ext4),如果您尝试执行以下操作:

date +%H:%M:%S.%N; echo "hello" > test1; stat -c %y test1 | cut -d" " -f 2
Run Code Online (Sandbox Code Playgroud)

第二个输出值(文件修改时间)始终比第一个输出值(系统时间)晚几毫秒,例如:

17:26:42.400823099
17:26:42.395348462
Run Code Online (Sandbox Code Playgroud)

而它应该是相反的,因为文件在调用命令后被test1修改。date

你可以在 python 中得到相同的结果:

date +%H:%M:%S.%N; echo "hello" > test1; stat -c %y test1 | cut -d" " -f 2
Run Code Online (Sandbox Code Playgroud)
1698255477.3125281
1698255477.3070245
Run Code Online (Sandbox Code Playgroud)

为什么会这样,有没有办法避免它,使系统时间与文件系统时间一致?到目前为止,我发现的唯一解决方法是通过创建一个虚拟临时文件并获取其修改时间来获取文件系统“时间”(无论这在实践中意味着什么),如下所示:

17:26:42.400823099
17:26:42.395348462
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有更清洁的解决方案。

linux filesystems timestamps time

35
推荐指数
2
解决办法
2981
查看次数

标签 统计

time ×10

date ×3

linux ×3

bash ×2

batch-jobs ×1

filesystems ×1

history ×1

man ×1

scp ×1

shell-script ×1

timeout ×1

timestamps ×1

timezone ×1

top ×1