ansible使用计划任务cron模块: 1.创建一个任务名为"store hostname"的任务,用来记录目标主机的主机名 2.该任务计划在3:45,周一--周三每天进行记录 3.查看该任务是否建立成功 4.取消该计划任务 5.删除该计划任务
时间: 2024-12-24 20:20:46 浏览: 12
Ansible 使用 Cron 模块来管理 Linux 系统的计划任务(Cron Jobs)。以下是针对你的需求设置一个名为 "store_hostname" 的任务,并完成相关操作:
1. 创建 `store hostname` 任务:
```yaml
---
- name: Store Hostname as a cron job
become: yes
cron:
name: store hostname
command: echo "$(hostname)" >> /path/to/hostname_log.txt # 保存主机名到指定文件
day_of_week: '1,2,3' # Monday to Wednesday (1 = Mon)
hour: '3'
minute: '45'
```
这里的 `command` 部分应该替换为实际记录主机名的命令,比如将主机名追加到文本文件。
2. 查看任务是否创建成功:
```shell
ansible localhost -m debug -a "var=cron"
```
这会显示 Ansible 控制机上当前的所有 cron 任务信息,包括新添加的 "store hostname"。
3. 取消计划任务:
```yaml
- name: Disable cron job
become: yes
cron:
name: store hostname
state: absent
```
运行此 playbook 后,任务将会从计划任务列表中移除。
4. 删除计划任务(如果状态变为 absent 后仍然存在,可能需要手动清除):
由于 Ansible 本身不会直接提供删除单个已禁用的 cron 任务的功能,你可能需要登录目标机器并使用 `crontab -e` 手动删除。例如:
```shell
ssh user@host "echo '# store hostname task removed by Ansible' > /etc/crontab"
```
然后将新的 crontab 保存。
请注意,在删除 cron 任务之前,最好先备份你的 `/etc/crontab` 或者确认这个任务不再被其他系统进程依赖。
阅读全文