Articles of 时间

从后台进程redirectstdout&stderr

我有一个名为foo的脚本运行程序a.exe,并将计时统计信息发送到文件time.log #!/bin/bash date 1>> time.log (time ./a.exe) 2>> time.log 如果我在terminal的后台运行脚本,并保持我的shell打开,直到a.exe完成,但如果我在后台运行脚本并退出我的terminal(a.exe需要很长时间才能运行) foo & exit 当我回来,a.exe已经执行,但时间统计信息不会出现在我的日志文件。 有人知道为什么吗? 是否有一种方法可以在closures父shell之后获取计时统计信息? 谢谢

如何在bash脚本中存储“time”函数输出的子string

所以bash的内置时间函数应该以这种格式输出 real 0m0.002s user 0m0.001s sys 0m0.000s 我想要以毫秒为单位保存用户的时间,如001这是干净的方式吗?

linux时间命令导致真正的小于用户

当我在linux下testing一个perl脚本并使用time sh -c来测量花费的时间时,我得到了一个奇怪的结果: real 14m11.903s user 34m39.319s sys 16m54.074s 这意味着实时花费甚至比用户时间less。 而且我自己在视觉上统计时间,剧本花了不到34分钟,实时更接近我所看到的。 有没有人有任何线索? 谢谢。

用于分布式时间同步的NTP有多好?

NTP在保持一组服务器时间同步方面有多精确? 我正在写一个服务,需要一组服务器(一些作为客户端,一些作为服务器)同步到二级粒度。 我想知道NTP是最好用的,还是有更好的? 我应该在其中之一运行一个ntp服务器,并让其他人使用它作为他们的来源? 有NTP的其他build议/恐怖故事? 所有的服务器是Linux。 更新:服务级别: 我希望一个服务器是准确的UTC(二级,而不是微秒或这样),我希望所有其他服务器是一样的ts作为一台服务器,无论是否准确UTC或不(事件被这个服务器从不同的时间间隔接收到,我要求所有这些事件处于相同的“相对”时间。不,我不能让主服务器TS进入事件,因为那样会需要存储一个偏移量(当事件实际发生和logging时,这需要大量额外的工作),而且这些事情不必要的复杂化。 我目前已经build立了一台服务器作为第2层时间服务器,在其他服务器上使用一些startum 1 GPS源作为ntp.conf中的服务器,我已经把这台服务器设置为ntp.conf中唯一的服务器。 我希望这将是足够的。 谢谢!

“less”命令显示输出的时间

我有一个产生大量输出的脚本。 脚本在T点暂停几秒钟。 现在我正在使用less命令来分析脚本的输出。 所以我执行./script | less ./script | less 。 我让它运行足够的时间,以便脚本将完成执行。 现在我按下Pg Down键来查看less命令的输出。 令人惊讶的是,当在输出的T点处滚动时,我注意到几秒钟的停顿。 脚本没有期望任何input,并且在我开始分析输出的时候肯定会完成。 有人可以解释一下,当脚本完成执行时,几秒钟的停顿是如何显示在输出中的?

在shell脚本中获取规范时区名称

有没有从Linux shell脚本获取规范时区名称的方法? 例如,如果我configuration的时区是PDT,那么我想获得“America / Los_Angeles”。 我知道我可以从符号连接/ etc / localtime得到,如果它被configuration,但因为它可能没有configuration在所有的服务器我不能依靠那个。 另一方面,我可以使用命令date +%Z得到短时区名称,但是我仍然需要规范名称。 有没有办法获得当前时区的规范名称,或者转换使用date +%Z命令获取的时区,即使没有设置符号链接/ etc / localtime?

Linux中用户空间的高精度时序

现在,我试图确定一个方法来衡量一个特定的function将采取(像pthread_create)的时间。 当然,现在这些types的function是非常优化的,可以尽可能缩短时间。 实际上这么小,我的计时器在用户空间使用gettimeofday(以毫秒为单位进行测量)是无法充分测量任何东西的。 通常情况下,如果我能弄乱内核,我会使用类似get_cycles的东西来衡量性能指标的周期数。 但是,我还没有find一种方法来在用户空间中做到这一点。 有没有办法使用get_cycles(或等价的)或其他更高精度的计时器,我可以在用户空间中使用来测量极其快速的function?

有什么办法可以在Linux的32位程序中获得64位的time_t

在Windows上,我可以打电话给: _time32(__time32_t); // to get 32bit time_t _time64(__time64_t); // to get 64bit time_t (在32位和64位程序中) 有没有办法在Linux(这与GCC编译)这样做?

实时了解localtime()和localtime_r()的时区变化

在Ubuntu 12.04.3 LTS框中,我只注意到localtime()和localtime_r()在进程生命周期中系统时区变化时的行为不同:localtime()立即获取时区变化​​,而localtime_r不是,似乎坚持在这个过程启动的时区。 这是预期的行为? 我没有看到这覆盖任何地方。 更确切地说,当我使用下面的代码… #include <stdio.h> #include <sys/time.h> #include <time.h> #include <unistd.h> int main() { while (1) { time_t t = time(NULL); struct tm *tm = localtime(&t); printf("localtime:%02d/%02d/%02d-%02d:%02d:%02d\n", tm->tm_mon + 1, tm->tm_mday, tm->tm_year + 1900, tm->tm_hour, tm->tm_min, tm->tm_sec); sleep(1); } return 0; } …并从UTC更改时区通过… # echo 'Europe/Berlin' > /etc/timezone # sudo dpkg-reconfigure –frontend […]

将时间跨度转换为shell中的格式化时间

我有一个$ i的variables,这是一个shell脚本中的秒,我试图将其转换为24 HOUR:MM:SS。 这是可能的壳?