clock
英[klɒk]
美[klɑːk]
n. 时钟; 钟;
v. 达到(某时间或速度); 测…的速度; 注意到; 认出;
date --help 获取帮助
[root@db02 ~]# date -R
Mon, 13 Aug 2018 11:10:04 +0800
[root@db02 ~]# date +%z
+0800
#我们国家的东八区(+0800)
这个文件其实也不包含在NTP 的 daemon 当中,因为这个是 Linux 的主要时区设定文件。每次开机后,Linux 会自动的读取这个文件来设定自己系统所默认要显示的时间。
vi /etc/sysconfig/clock //执行这个命令,编辑/etc/sysconfig/clock文件
# The time zone of the system is defined by the contents of /etc/localtime.
# This file is only for evaluation by system-config-date, do not rely on its
# contents elsewhere.
ZONE="Asia/Shanghai" //这个位置把Asia/Ulaanbaatar改为Asia/Shanghai
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
"/etc/sysconfig/clock" 4L, 196C
[root@centeros6 etc]# rm /etc/localtime //删除/etc/localtime文件
rm:是否删除普通文件 "/etc/localtime"?yes //此处输入yes执行删除
[root@centeros6 etc]# ls //通过ls命令查看已经删除
abrt dracut.conf.d kdump.conf pcmcia scl
acpi drirc krb5.conf pinforc securetty
adjtime enscript.cfg latrace.conf pkcs11 security
aliases environment latrace.d pki selinux
aliases.db ethers ld.so.cache plymouth services
alsa exports ld.so.conf pm sestatus.conf
alternatives favicon.png ld.so.conf.d pm-utils-hd-apm-restore.conf setuptool.d
anacrontab festival libaudit.conf pnm2ppa.conf sgml
anthy-conf filesystems libnl polkit-1 shadow
asound.conf firefox libreport popt.d shadow-
at.deny fonts libuser.conf portreserve shells
audisp foomatic login.defs postfix skel
audit fprintd.conf logrotate.conf ppp smartd.conf
autofs.conf fstab logrotate.d prelink.cache sos.conf
autofs_ldap_auth.conf gai.conf lsb-release prelink.conf sound
auto.master gconf lsb-release.d prelink.conf.d ssh
auto.misc gcrypt ltrace.conf printcap ssl
auto.net gdm lvm profile sssd
auto.smb ghostscript magic profile.d statetab
avahi gnome-vfs-2.0 mailcap protocols statetab.d
bash_completion.d gnupg mail.rc pulse sudo.conf
bashrc group makedev.d purple sudoers
blkid group- man.config quotagrpadmins sudoers.d
bluetooth grub.conf maven quotatab sudo-ldap.conf
bonobo-activation gshadow mime.types rc sysconfig
cas.conf gshadow- mke2fs.conf rc0.d sysctl.conf
centos-release gssapi_mech.conf modprobe.d rc1.d sysctl.d
certmonger gtk-2.0 motd rc2.d system-release
chkconfig.d hal mtab rc3.d system-release-cpe
ConsoleKit host.conf mtools.conf rc4.d terminfo
cron.d hostname my.cnf rc5.d Trolltech.conf
cron.daily hosts nanorc rc6.d udev
cron.deny hosts.allow netconfig rc.d updatedb.conf
cron.hourly hosts.deny NetworkManager rc.local vimrc
cron.monthly hp networks rc.sysinit virc
crontab httpd nfsmount.conf rdma vmware-caf
cron.weekly idmapd.conf nsswitch.conf readahead.conf vmware-tools
crypttab init ntp redhat-lsb warnquota.conf
csh.cshrc init.conf ntp.conf redhat-release wgetrc
csh.login init.d obex-data-server request-key.conf wpa_supplicant
cups inittab oddjob request-key.d X11
dbus-1 inputrc oddjobd.conf resolv.conf xdg
default ipa oddjobd.conf.d rpc xinetd.d
depmod.d iproute2 openldap rpm xml
dhcp issue opt rsyslog.conf yp.conf
DIR_COLORS issue.net PackageKit rsyslog.d yum
DIR_COLORS.256color java pam.d rwtab yum.conf
DIR_COLORS.lightbgcolor jvm pango rwtab.d yum.repos.d
dnsmasq.conf jvm-commmon passwd samba
dnsmasq.d kde passwd- sane.d
dracut.conf kdump-adv-conf pbm2ppa.conf sasl2
[root@centeros6 etc]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime -R //复制文件
[root@centeros6 etc]# vi /etc/localtime
root@centeros6 etc]# hwclock -w //-w参数是将硬件时钟设置为当前的系统时间,执行这个命令的目的主要是要写入硬件,避免重启失效。
[root@centeros6 ~]# ntpdate 10.180.45.91
26 May 19:08:34 ntpdate[3877]: adjust time server 10.180.45.91 offset -0.042970 se
[root@centeros6 etc]# date
2020年 05月 26日 星期二 19:09:17 CST
1)硬件时钟
这个时钟,运行独立于任何控制程序运行在CPU中,甚至当机器关闭。在ISA系统中,这个时钟被指定为ISA标准的一部分。控制程序可以读取或设置这个时钟为整秒,但控制程序也可以检测1秒时钟的边缘,因此该时钟实际上具有无限的精度。
这种时钟通常被称为硬件时钟、实时时钟、RTC、BIOS时钟和CMOS时钟。硬件时钟以其大写的形式被hwlock所发明,因为其他所有的名称都不适合误导。例如,一些非ISA系统有几个实时时钟。一个非常低功耗的I2C或SPI时钟芯片可以与备用电池一起作为硬件时钟,以初始化一个功能更好的集成实时时钟,用于大多数其他用途。
2)系统时钟
这是由Linux内核内的时钟保持的时间,由计时器中断驱动。(在ISA机器上,计时器中断是ISA标准的一部分)。它只有在linux在机器上运行时才有意义。系统时间是从1970年世界协调时(UTC)1月1日00:00开始的秒数(或者更简洁地说,是1969年以来的秒数)。不过,系统时间不是整数,它实际上是无限的。系统时间是重要的时间。Linux系统中硬件时钟的基本目的是在Linux不运行时保持时间。在Linux启动时,将系统时间从硬件时钟初始化,然后不再使用硬件时钟。请注意,在设计ISA的DOS中,硬件时钟是唯一的实时时钟。
重要的是,当系统运行时,系统时间不存在任何不连续性,比如使用date命令来设置它。但是,在系统运行时,您可以对硬件时钟做任何您想做的事情,而下一次Linux启动时,它将使用硬件时钟的调整时间进行设置。
Linux内核维护系统的本地时区的概念。但是不要被误导-几乎没有人关心内核认为它在哪个时区。相反,关心时区的程序(可能因为他们想为您显示本地时间)几乎总是使用更传统的方法。确定时区:它们使用“tz”环境变量或“/usr/share/zoneinfo”目录,如tzset(3)的手册页所解释的那样。时区值是错误的,vFAT文件系统会在文件上报告并设置错误的时间戳。
当您使用”--hctosys”选项设置系统时间时,hwlock将内核时区设置为“tz”或“/usr/share/zoneinfo”所指示的值。
时区值实际上由两部分组成:1)字段“tz_minutesWest”表示本地时间(未根据DST进行调整)滞后于UTC;2)字段“tz_dsttime”,指示当前在本地有效的夏令时(DST)约定的类型。第二个字段不在Linux下使用,始终为零。
3)hwclock如何访问硬件时钟
hwlock使用多种不同的方法来获取和设置硬件时钟值,最常见的方法是对设备特殊文件“/dev/rtc”执行I/O操作,假定该文件是由rtc设备驱动程序驱动的。然而,这种方法并不总是可用的。首先,rtc驱动程序是linux中比较新的一种。此外,虽然有一些版本的rtc驱动程序可以在decalpha上工作,但似乎有大量的alpha无法工作(常见的症状是时钟挂起)。此外,最近的linux系统对rtc有更多的通用支持,甚至支持不止一个的系统,所以您可能需要通过指定/dev/rtc 0或/dev/rtc 1来覆盖默认值。
在旧系统中,访问硬件时钟的方法取决于系统硬件。
在ISA系统中,hwlock通过对端口0x70和0x71进行I/O操作,可以直接访问构成时钟的“CMOS存储器”寄存器。它使用实际的I/O指令,因此只有在超级用户有效用户ID的情况下才能这样做。(对于jensen Alpha,hwlock无法执行这些I/O指令,因此它使用设备文件“/dev/port”,它提供了与I/O子系统几乎一样低的接口)。这是一种非常糟糕的访问时钟的方法,因为用户空间程序通常不应该进行直接I/O和禁用中断。但是在ISA和Alpha系统中,这是唯一的方式。
在m68k系统上,hwlock可以通过控制台驱动程序访问时钟,通过设备文件“/dev/tty1”访问时钟。
hwlock尝试使用文件“/dev/rtc”。如果内核没有编译“/dev/rtc”,或者它无法打开“/dev/rtc”,那么hwlock将返回到另一种方法(如果可用的话)。在ISA或Alpha计算机上,您可以强制hwclock使用CMOS寄存器的直接操作,而无需通过指定“--directisa”选项。
4)校准功能adjust
硬件时钟通常不是很精确,但是它的许多不准确是完全可以预测的,它每天得到或失去相同的时间。这被称为系统漂移。hwlock的“调整”功能允许您进行系统校正以纠正系统漂移。它的工作方式如下:hwlock保存了一个文件“/etc/adjtime”,它保存了一些历史信息。
假设您从没有adjtime文件开始,发出hwlock-set命令将硬件时钟设置为真实的当前时间。hwlock创建adjtime文件,并在其中记录当前时间,作为最后一次校准时钟。5天后,时钟增加了10秒,因此您可以发出另一个“hwlock --set”命令来设置它。返回10秒。hwlock更新adjtime文件,显示当前时间作为最后一次校准时钟,并以系统漂移速率记录每天2秒。24小时过去,然后发出“hwlock --adjust”命令。hwlock查阅adjtime文件,看到时钟离开时每天增加2秒。一个人呆了整整一天。所以它从硬件时钟中减去2秒。然后,它记录当前时间作为最后一次调整时钟的时间。又过了24小时,你又发出了另一个“hwclock --adjust”指令。hwclock做了同样的事情:减去2秒,用当前时间更新adjtime文件,这是最后一次调整时钟。
每次您校准时钟(使用--set或—systohc)时,hwlock根据上次校准的时间、上次调整后的时间、在任何中间的调整中假定的漂移率以及时钟当前的关闭量,重新计算系统漂移率。在hwclock使用的任何时候,都会出现少量的误差,因此它不会进行小于1秒的调整。稍后,当您再次请求调整时,累积漂移将超过1秒钟,而hwlock则会进行调整。
在系统启动时,在“hwlock --hctosys”之前进行hwlock的调整是很好的,并且在系统通过cron运行时也可以定期进行调整。
虽然adjtime文件的命名仅仅是为了控制时间调整的历史记录,但它实际上包含了hwlock在从一个调用到下一个调用时记忆信息时使用的其他信息。adjtime文件的格式是ASCII:
第1行的3个数字数字,用空格隔开,分别代表:a)系统漂移率,每天以秒为单位,浮点小数点;b)自1969年世界协调时以来最近调整或校准的秒数,小数整数;c)零(与时钟(8)兼容)为十进制整数。
第2行一个数字,代表自1969年世界协调时以来最近一次校准产生的秒数。如果还没有校准,或者已知任何先前的校准都是没有意义的,那么值就是0(例如,因为在校准之后,硬件时钟已经被找到,不包含有效时间)。这是一个十进制整数。
第3行是“utc”或“local”。指示硬件时钟是设置为协调世界时间还是设置为本地时间。
5)内核如何自动同步硬件时钟
在某些系统中,您应该注意到硬件时钟保持同步的另一种方式。Linux内核有一种模式,它每11分钟将系统时间复制一次到硬件时钟。这是一个很好的模式,当您使用一些复杂的东西,比如NTP来保持系统时间同步时。(NTP是一种保持系统时间同步的方法,它可以与网络上的某个时间服务器或连接到您的系统的无线电时钟保持同步。参见RFC 1305)。
这个模式(我们称之为“11分钟模式”)是关闭的,直到有东西打开它。ntp守护进程xntpd就可以打开它。您可以通过运行任何东西来关闭它,包括“hwlock --hctosys”,它以老式的方式设置系统时间。
如果你的系统以11分钟的模式运行,不要使用“hwlock --adjust”或“hwlock-hctosys”。在启动时使用“hwlock --hctosys”来获得一个合理的系统时间是可以接受的,直到您的系统能够运行为止。从外部源设置系统时间并启动11分钟模式
protocol
英[ˈprəʊtəkɒl]
美[ˈproʊtəkɑːl]
n. 礼仪; 外交礼节; 条约草案; 议定书; (协议或条约的) 附件; (数据传递的) 协议,规程,规约;
https://www.cnblogs.com/ibnode/p/3573302.html
https://blog.51cto.com/sandshell/2158984