多个服务器实现时间同步,使用ansible cron模块对主机记性周期性时间同步
0x01:同步时间
安装
[root@ansible ~]# date
Wed Dec 16 17:45:04 CST 2020
[root@ansible ~]# yum install ntp -y
选择时钟源服务器
time1.aliyun.com
time.windows.com
同步时间
[root@ansible ~]# ntpdate time1.aliyun.com
16 Dec 17:46:30 ntpdate[89462]: adjust time server 203.107.6.88 offset -0.000624 sec
0x02:定时任务
crontab [ -u user ] { -l | -r | -e }
crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。
参数说明:
- -e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
- -r : 删除目前的时程表
- -l : 列出目前的时程表
* * * * *
- - - - -
| | | | |
| | | | +----- 星期中星期几 (0 - 7) (星期天 为0)
| | | +---------- 月份 (1 - 12)
| | +--------------- 一个月中的第几天 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)
实例
# 每一分钟执行一次 /bin/ls:
* * * * * /bin/ls
# 意思是每两个小时重启一次apache
0 */2 * * * /sbin/service httpd restart
# 意思是每天7:50开启ssh服务
50 7 * * * /sbin/service sshd start
# 在 12 月内, 每天的早上 6 点到 12 点,每隔 3 个小时 0 分钟执行一次 /usr/bin/backup:
0 6-12/3 * 12 * /usr/bin/backup
0x03:批量操作
ansible命令执行
# 所有记录主机安装ntp
ansible app -m shell -a "yum install ntp -y"
# 所有记录主机添加定时任务
ansible all-m cron -a "name=ntpdate job='ntpdate time1.aliyun.com' minute=0 hour=*/1"
ansible-playboot脚本
---
- hosts: all
gather_facts: false
remote_user: root
tasks:
- name: name=ntpdate date
cron: name="ntpdate" job="ntpdate time1.aliyun.com" minute-0 hour=*/1