配置NTP网络时间客户端和设置计划任务
3.1问题
本例要求配置虚拟机server0,能够自动校对系统时间。相关信息如下:
NTP服务器位于classroom.example.com
此客户机的系统时间应当与NTP服务器的时间保持同步
3.2方案
NTP服务端可以为客户端提供标准的日期时间。
在RHEL7主机中可以配置软件包chrony来使用NTP时间同步。
3.3步骤
实现此案例需要按照如下步骤进行。
步骤一:确认已安装NTP客户端软件包chrony
l 通常系统会默认安装此软件包:
[root@server0~]#rpm -q chrony
chrony-1.29.1-1.el7.x86_64
l 如果检查发现此软件包没有安装,请通过yum命令安装:
[root@server0~]#yum -y install chrony
....
l 如果发现此软件包已经安装,但配置文件/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