配置NTP网络时间客户端和设置计划任务

3.1问题

本例要求配置虚拟机server0,能够自动校对系统时间。相关信息如下:

NTP服务器位于classroom.example.com

此客户机的系统时间应当与NTP服务器的时间保持同步

3.2方案

NTP服务端可以为客户端提供标准的日期时间。

在RHEL7主机中可以配置软件包chrony来使用NTP时间同步。

3.3步骤

实现此案例需要按照如下步骤进行。

步骤一:确认已安装NTP客户端软件包chrony

通常系统会默认安装此软件包:

[root@server0~]#rpm -q chrony

chrony-1.29.1-1.el7.x86_64

如果检查发现此软件包没有安装,请通过yum命令安装

[root@server0~]#yum -y install chrony

....

如果发现此软件包已经安装,但配置文件/etc/chrony.conf损坏或信息丢失,可删除此文件后重新安装chrony软件包:

[root@server0~]#rm -rf /etc/chrony.conf

[root@server0~]#yum -y reinstall chrony

已加载插件:langpacks

正在解决依赖关系

-->正在检查事务

--->软件包chrony.x86_64.0.1.29.1-1.el7将被重新安装

-->解决依赖关系完成

....

步骤二:调整NTP客户端配置

1)修改/etc/chrony.conf文件内的server配置

移除不可用的NTP服务器记录,正确添加可用的记录:

[root@server0~]#vim /etc/chrony.conf

....

#server 0.rhel.pool.ntp.org iburst//注释掉默认的server配置,

#server 1.rhel.pool.ntp.org iburst

#server 2.rhel.pool.ntp.org iburst

#server 3.rhel.pool.ntp.org iburst

server classroom.example.com iburst//添加新的配置

....

2)开启NTP时间同步

[root@server0~]#timedatectl//查看现有状态

....

NTP enabled:no//NTP可能尚未启用

NTP synchronized:no//尚未完成过一次NTP同步

....

[root@server0~]#timedatectl set-ntp yes//启用NTP同步

[root@server0~]#timedatectl//查看启用后的状态

....

NTP enabled:yes//NTP已经启用

NTP synchronized:no//尚未完成过一次NTP同步

....

步骤三:测试NTP时间同步

1)先设置一个错误的系统日期时间

[root@server0~]#date -s '2001-09-11 11:30:00'//调整日期时间

2001年09月11日星期二11:30:00 CST

[root@server0~]#date//确认调整结果

2001年09月11日星期二11:30:01 CST

2)启动系统服务chronyd,并设为开机自启

[root@server0~]#systemctl restart chronyd

[root@server0~]#systemctl enable chronyd

3)重新查看当前的系统时间

重启chronyd服务后稍等片刻,当前系统的日期时间应该恢复正常(与NTP服务器   保持一致):

[root@server0~]#date

2016年12月23日星期五23:44:53 CST

再次执行timedatectl查看,会发现NTP synchronized的值已经变成yes:

[root@server0~]#timedatectl

....

NTP enabled:yes//NTP已经启用

NTP synchronized:no//已经完成过一次NTP同步

....


案例4:配置一个cron任务

4.1问题

本例要求为用户natasha配置一个定时任务,具体要求如下:

每天在本地时间14:23执行

需要完成的任务操作为/bin/echo hiya

4.2方案

配置格式可参考/etc/crontab文件:

分时日月周任务命令行(绝对路径)

在表示各段的时间点时,除了明确的数值以外,还可以参考以下形式:

*:匹配范围内任意时间

,:分隔多个不连续的时间点

-:指定连续时间范围

/n:指定时间频率,每n...

4.3步骤

实现此案例需要按照如下步骤进行。

步骤一:配置crontab任务记录

1)确保系统服务crond可用

[root@server0~]#systemctl restart crond

[root@server0~]#systemctl enable crond

2)为用户natasha添加计划任务

[root@server0~]#crontab -e -u natasha

23 14 * * *  /bin/echo hiya

步骤二:检查任务是否执行

1)将系统日期时间临时调整到任务时间点前10秒左右

[root@server0~]#date -s '14:22:50' //设置

Sat Nov 26 14:22:50 CST 2016

[root@server0~]#date //确认日期时间

Sat Nov 26 14:22:55 CST 2016

2)等待10秒后查看/var/log/cron日志,应该会有执行记录

[root@server0~]#tail /var/log/cron

....

Nov 26 14:23:02 localhost CROND[3818]:(natasha)CMD(/bin/echo hiya)

3)恢复系统日期时间

[root@server0~]#hwclock -s //重设为系统时钟

[root@server0~]#date //确认日期时间

Sat Nov 26 05:05:23 CST 2016

4)以格式“yyyy-mm-dd HH:MM”显示系统时间

[root@svr7~]#date +"%F%R"

2016-12-26 16:23

05-16 04:37