首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Ansible cron作业不转义百分号`%`

基础概念

Ansible 是一种自动化工具,用于配置管理、应用部署、任务自动化等。它使用 YAML 格式的文件来定义任务和配置。Ansible 的 cron 作业模块允许你在目标主机上管理 cron 作业。

问题描述

在使用 Ansible 的 cron 作业模块时,百分号(%)会被解释为换行符,而不是普通字符。这会导致 cron 作业无法正确执行。

原因

Ansible 默认会对百分号进行转义,以防止 shell 解释错误。

解决方法

为了避免百分号被转义,可以使用以下几种方法:

方法一:使用双引号

将百分号放在双引号中,这样 Ansible 就不会对其进行转义。

代码语言:txt
复制
- name: Add a cron job
  cron:
    name: "My Cron Job"
    job: "/path/to/script.sh '%Y-%m-%d %H:%M:%S'"
    user: root
    state: present

方法二:使用 raw 参数

使用 raw 参数可以避免 Ansible 对百分号进行转义。

代码语言:txt
复制
- name: Add a cron job
  cron:
    name: "My Cron Job"
    job: "/path/to/script.sh %Y-%m-%d %H:%M:%S"
    user: root
    state: present
    raw: true

方法三:使用 cron_file 参数

将 cron 作业写入特定的文件中,这样可以避免百分号被转义。

代码语言:txt
复制
- name: Add a cron job to a specific file
  cron:
    name: "My Cron Job"
    job: "/path/to/script.sh %Y-%m-%d %H:%M:%S"
    user: root
    state: present
    cron_file: my_cron_job

示例代码

以下是一个完整的 Ansible playbook 示例,展示了如何使用双引号来避免百分号被转义:

代码语言:txt
复制
---
- name: Manage Cron Jobs
  hosts: all
  become: true
  tasks:
    - name: Add a cron job with escaped percentage
      cron:
        name: "My Cron Job"
        job: "/path/to/script.sh '%Y-%m-%d %H:%M:%S'"
        user: root
        state: present

参考链接

通过以上方法,你可以成功地在 Ansible 中添加 cron 作业,并避免百分号被错误转义的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 领券