当前位置: 技术问答>linux和unix
获取linux启动时间
来源: 互联网 发布时间:2016-11-29
本文导语: 需求:获取linux从加电到启动完成的时间 问题:1.只使用bash可以做到吗 2.各位大虾给点思路 | 楼主可以了解下/proc/uptime以及uptime命令。 第一个数值表示系统总的启动时间,第二个数值表示...
需求:获取linux从加电到启动完成的时间
问题:1.只使用bash可以做到吗
2.各位大虾给点思路
问题:1.只使用bash可以做到吗
2.各位大虾给点思路
|
楼主可以了解下/proc/uptime以及uptime命令。
第一个数值表示系统总的启动时间,第二个数值表示系统空闲的时间,单位都是秒。
所以,楼主只需要在.bashrc中,加入这个命令:cat /proc/uptime > start_cost.txt
开机后,就可以打印这个txt文件信息看到开机时长。
----------
coreutils中的uptime部分源码可参考:
第一个数值表示系统总的启动时间,第二个数值表示系统空闲的时间,单位都是秒。
所以,楼主只需要在.bashrc中,加入这个命令:cat /proc/uptime > start_cost.txt
开机后,就可以打印这个txt文件信息看到开机时长。
----------
coreutils中的uptime部分源码可参考:
static void
print_uptime (size_t n, const STRUCT_UTMP *this)
{
size_t entries = 0;
time_t boot_time = 0;
time_t time_now;
time_t uptime = 0;
long int updays;
int uphours;
int upmins;
struct tm *tmn;
double avg[3];
int loads;
#ifdef HAVE_PROC_UPTIME
FILE *fp;
fp = fopen ("/proc/uptime", "r");
if (fp != NULL)
{
char buf[BUFSIZ];
char *b = fgets (buf, BUFSIZ, fp);
if (b == buf)
{
char *end_ptr;
double upsecs = c_strtod (buf, &end_ptr);
if (buf != end_ptr)
uptime = (0 1)
printf (", %.2f", avg[1]);
if (loads > 2)
printf (", %.2f", avg[2]);
if (loads > 0)
putchar ('n');
}
}
|
aopclinux thread # uptime
10:16:14 up 2:49, 6 users, load average: 0.18, 0.08, 0.07
10:16:14 up 2:49, 6 users, load average: 0.18, 0.08, 0.07
|
Tera Term记录Log的时候就可以记录时间(手头4.65就可以)。