- Linux 常用命令(grep等) - 简书
- BusyBox Commands @ BoxMatrix;
- BusyBox - The Swiss Army Knife of Embedded Linux
-
Is it possible to check NTPd status on a Busybox system?
Busybox 默认有代码 ntpd.c,定制的终端一般都给剪切了。 - SNTP @IBM:Simple Network Time Protocol
- ntpclient Larry Doolittle
-
How to verify NTP is working Or not (Check Status of NTP);
ntpq, ntpstat , timedatectl
由于 CentOS 支持 systemd,故默认带 timedatectl。 - Discussion: how to use ntp in busybox? 可以读一下。
- Busybox 嵌入式系统下的 ntp
/usr/sbin/nptclient
/bin/sntp
- CentOS 下的 ntp 包
yum info ntp
,yum info ntp-doc
,yum info sntp
,你可以man
ntpd, ntpc, ntpq。 - LINUX 上 实现SNTP (时间同步);
时间设置
- date
-
date +%Y-%m-%d+%H:%M:%S
:2018-08-04+12:20:23 -
date +%Y-%m-%d+%T
:2018-08-04+12:18:59 -
date +%-m%d%H
:80412
By default, date pads numeric fields with zeroes. -
date +%m%d%H
:080412 -
date -Iseconds
:2018-08-04T12:21:14+0800 -
date -Iseconds -r <filename>
:查看指定文件的最后修改时间;
-r, --reference=FILE display the last modification time of FILE
-
uptime
(开机时间)
13:48:07 up 1541 days, 10:47, 1 user, load average: 0.41, 0.26, 0.16
Uptime Command In Linux:
It is used to find out how long the system is active (running).
This command returns set of values that involve:the current time
, andthe amount of time
system is in running state,number of users
currently logged into, andthe load time
for the past 1, 5 and 15 minutes respectively.
- Installation Date
ls -ld /var/log/installer
ls -ld /lost+found
-
date -s '2014-12-25 12:34:56'
[设置系统时间];
Linux: set date through command line; -
date -s "2014-12-25 $(date +%H:%M:%S)"
设置系统时间;
时区设置
- /etc/localtime
可以是链接到某个时区文件的一个 link 文件,也可以是一个拷贝。
rm /etc/localtime
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
- How can I examine the contents of /etc/localtime?: 如何查看 localtime 文件。了解 zdump 工具。
- Linux 时区设置 @csdn
- 系统运行时长
uptime=$(awk '{print $1}' < /proc/uptime)
:系统已经运行多少秒;
starttime=$(awk '{print $22}' < /proc/$pid/stat)
:进程的开始时间(返回自系统启动后的所经历的 jiffies 节拍数,通常100个节拍为1秒);
0--------------------->进程启动------------------------>now
(进程历时jiffies节拍数) uptime秒数
STARTTIME=$(awk '{print int($22 / 100)}' /proc/$PID/stat)
UPTIME=$(awk '{print int($1)}' /proc/uptime)
时区设置文件
- /usr/share/zoneinfo 目录
在该目录下,有 zone.tab 文件(文本文件)和所有的时区文件,比如 /usr/share/zoneinfo/Asia/Shanghai 时区(使用 strings 命令可查看其中的可打印字串)。查看 tz database:更多时区内容。 - /etc/sysconfig/clock
ZONE=Asia/Shanghai
UTC=false
ARC=false
/etc/TZ
- 在嵌入式设备中,Linux是定制的,要具体去查看怎么实现的时区设置。shell 常见 Busybox。
- 不同硬件方案的嵌入式设备,对时区的处理不同。
- About timezone @ stackoverflow:关于时区的一切信息。
- uclibc: Embedded C library. 兼容 glibc。
- Busybox FAQ 关于 TZ 的说明:Busybox has nothing to do with the timezone. Please consult your libc documentation. (http://google.com/search?q=uclibc+glibc+timezone).
- 有的设置 /etc/TZ 文件即可:
cat /etc/TZ
GMT-8
注意:一般使用 UTC(国际标准)代替 GMT(英国) 了。
通过 TZ 变量设置时区
- 临时也可以通过
export TZ=UTC-08
设置 TZ,则date
的输出就是东八区当地时间了。POSIX style time zones @IBM 注意 POSIX 风格的时区 TZ。通过echo $TZ
查看 TZ 变量。TZ 设置错误,默认就是 UTC。 - Why does TZ=UTC-8 produce dates that are UTC+8? 负负得正,这个人算是讲清楚了,解了一个心头疑惑。要点是先有USA标准,后来ISO,两个刚好相反。
- GNU 的 Specifying the Time Zone with TZ 讲了3种设置方式。
第一种:TZ=UTC-8
,第二种:夏时值,用不上。
第三种:export TZ=:America/New_York
,支持度各不同,在 CentOS 上可以,在嵌入式系统上不支持。 - GNU Functions and Variables for Time Zones;
-
Working with timezones in C:
setenv("TZ", "UTC-8", 1);
即可。 - 有一款 MTK 方案的更怪异,竟无法简单设置,以至于有的厂商要求在应用程序级别上去解决时区问题。
- List of tz database time zones: Asia/Shanghai 中国时区
- List of time zone abbreviations:UTC+08;
- uptime
系统运行时间 Display the time since the last boot. - /proc/uptime 输出 uptime and idle time, by seconds.
How can the 2nd field (idle time) of /proc/uptime be greater than overall system uptime? - /proc/cpuinfo 查看 cpu 个数
- tzselect 选择时区
- timeconfig 设置时间
- hwclock -w 写入硬件
unix time
Unix time is defined as the number of seconds that have elapsed since 00:00:00 Coordinated Universal Time (UTC), Thursday, 1 January 1970.
- time(NULL) 取得这个秒数;
-
localtime() 用来获取本地时间的;
./strace -f ./superd -i br0:eth2.2 -n DE30054666CD6D318 -o YHTX -p 47.15.98.115 &
内核和系统版本
cat /proc/version
cat /etc/centos-release
cat /etc/redhat-release
cat /etc/system-release
cat /etc/lsb-release
- LSB(Linux Standard Base)
- lsb_release -a
- uname -a
Ubuntu
关于 CST
时区问题,最早接触 Unix 时就曾经碰到过,没想到今天又碰到。
-
date -R
命令可以查看当前时区。--rfc-2822, Example: Mon, 07 Aug 2006 12:34:56 -0600 -
date -u
命令可以显示 UTC。--utc。 -
date +%s
命令可以显示 Unix Timestamp。
我本人一直习惯把 CST 作为美国中部时间看。实际上,CST 至少同时代表了下面4个时区:
- CST Central Standard Time (USA) UT-6:00
- CST Central Standard Time (Australia) UT+9:30
- CST China Standard Time UT+8:00
- CST Cuba Standard Time UT-4:00
由此,CST 同时表示这么多含义,本人觉得非常不合理。估计时间函数库都会存在 BUG。反而 UTC 看起来比较统一,不过也还是要有一个过程。
中国时区
了解一下 中国时区设置,以及 1949年前时区设置。
Epoch 转换
Epoch & Unix Timestamp Conversion Tools. Convert epoch to human readable date and vice versa.