SUSE自动同步时间

服务器每天定时同步时间一次:

1
52 03 * * * /usr/sbin/ntpdate 10.x.x.x 10.10.x.x; /sbin/hwclock -w

可以配置自己局域网的服务器作为时间服务器,安装ntpdate工具,然后服务器配置如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
################################################################################
## /etc/ntp.conf
##
## Sample NTP configuration file.
## See package 'ntp-doc' for documentation, Mini-HOWTO and FAQ.
## Copyright (c) 1998 S.u.S.E. GmbH Fuerth, Germany.
##
## Author: Michael Andres,  <ma@suse.de>
##         Michael Skibbe,  <mskibbe@suse.de>
##
################################################################################
server 127.127.1.0              # local clock (LCL)
fudge  127.127.1.0 stratum 10   # LCL is unsynchronized

# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default notrap nomodify nopeer noquery
restrict -6 default notrap nomodify nopeer noquery

# Local users may interrogate the ntp server more closely.
#restrict 127.0.0.1
#restrict ::1

driftfile /var/lib/ntp/drift/ntp.drift # path for drift file
logfile   /var/log/ntp          # alternate log file
keys /etc/ntp.keys              # path for keys file
trustedkey 1                    # define trusted keys
requestkey 1                    # key (7) for accessing server variables
controlkey 1                    # key (6) for accessing server variables

# ---------------------------------------------
# add by cd.net on 2018-05-21
disable monitor

restrict default ignore
restrict 127.0.0.1
restrict 10.10.11.0 mask 255.255.255.0 nomodify

时间服务器自己需要定时同步时间,然后再启动service服务,供内网其它服务器使用:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
#!/bin/bash

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Created by cd.net on 2020-04-25
# 下面的配置跑在 server 上面。 每8个小时和公网的时间服务器同步
# 0 */8 * * * /bin/sh /opt/tl_sentinel_client/shell/ntp/ntp_run_self.sh
systemctl stop ntpd.service
sleep 3
/usr/sbin/ntpdate ntp1.aliyun.com 0.cn.pool.ntp.org 0.uk.pool.ntp.org; /sbin/hwclock -w
systemctl start ntpd.service

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# 下面这个一般用于 client 端,每天同步一次时间即可
#12 03 * * * /usr/sbin/ntpdate 10.10.11.11 10.10.11.12; /sbin/hwclock -w

CentOS8以上配置时间同步

CentOS8开始,默认不使用ntpdate同时时间,取而代之的是chrony。如果你还是想使用ntpdate命令,可以参考如下的安装方式:

1
2
3
rpm -ivh http://mirrors.wlnmp.com/centos/wlnmp-release-centos.noarch.rpm
yum install wntp
ntpdate 10.10.11.xxx 10.10.200.xxx; /sbin/hwclock -w

但很可惜,CentOS上面ntp使用起来可能会报错了,推荐采用官方推荐的chrony服务。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 服务器端配置
#vi /etc/chrony.conf [Server]
pool 2.centos.pool.ntp.org iburst # 源
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
allow 10.10.0.0/16 # 服务的范围
local stratum 10   # 这行也要打开,否则客户端无法同步本机时间
keyfile /etc/chrony.keys
leapsectz right/UTC
logdir /var/log/chrony

# 客户端配置
#vi /etc/chrony.conf [Client]
pool 10.10.12.14 iburst # 配置本地源。或者写成:server 10.10.12.14 iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
keyfile /etc/chrony.keys
leapsectz right/UTC
logdir /var/log/chrony

# 配置好参数之后,重启服务
systemctl status chronyd
systemctl restart chronyd

# 下面有一些命令工具
chronyc -a makestep          # 手动同步一次时间
chronyc sources -v           # 查看所以的同步源
chronyc sourcestats -v       # 查看同步状态
chronyc tracking             # 显示系统时间信息
chronyc                      # 进入控制台交互界面设置
timedatectl                  # 时间管理
timedatectl set-local-rtc 1  # 设置硬件时间,硬件时间默认为UTC
timedatectl set-ntp yes      # 启用NTP时间同步

新一些的opensuse系统也可以采用 chrony 做时间同步,zypper in chrony 就好了,用法一样。

修改系统时区

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
[root@master run]# date
Fri Apr 26 04:01:20 EDT 2019

# EDT时间为美国时间,把EDT改为CST(北京时间)即可,命令如下:
[root@master run]# mv /etc/localtime /etc/localtime.bak
[root@master run]# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@master run]# date
Fri Apr 26 16:04:14 CST 2019

# opensuse可能没有时区文件,安装即可
zypper in -y timezone
zypper in -y chrony

参考:https://www.cnblogs.com/lizhaoxian/p/11260041.html

直接修改系统时间

1
2
3
date
date -s HH:MM:SS # 修改当前系统时间,重启失效
/sbin/hwclock -w # 保存修改的时间,重启也生效

系统字符编码

有时候系统设置的字符集语言包,系统本身并没有安装,导致下面语句运行的结果,而且查看文件会出现乱码。

1
2
3
4
5
6
7
[root@WEB-DB4 dxhj]# locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

# 或者出现下面的错误
Failed to set locale, defaulting to C.UTF-8
  • 报错原因:

    • 没有安装相应的语言包。
    • 没有设置正确的语言环境。
  • 解决方法1:安装语言包

    • 设置语言环境需使用命令 locale
    • locale -a 命令,查看目前系统已安装的语言包
    • 安装中文语言包,命令yum install glibc-langpack-zh
    • 安装英文语言包,命令 glibc-langpack-enlangpacks-en glibc-all-langpacks
  • 解决方法2:设置正确的语言环境

可以尝试将/etc/locale.conf 文件中的语言编码改成en_US,然后重启系统。

[root@WEB-DB4 dxhj]# vi /etc/locale.conf 
LANG="en_US.UTF-8"

或者按照下面的方法试一试:

1
2
3
4
echo "export LC_ALL=en_US.UTF-8" >> /etc/profile
source /etc/profile

# 或使用命令locale -gen en_US.UTF-8

(完)