Ansible cronjob-向文件名添加时间戳
我正在尝试编写一个Ansible任务,它每天备份数据库,并为文件名添加时间戳Ansible cronjob-向文件名添加时间戳,cron,ansible,timestamp,Cron,Ansible,Timestamp,我正在尝试编写一个Ansible任务,它每天备份数据库,并为文件名添加时间戳 - name: Run cronjob to backup database. become_user: postgres cron: name: "Export database" special_time: daily job: pg_dump -U db_user -W -F t db_name > filename.tar 我试图简单地将$(日期+%Y
- name: Run cronjob to backup database.
become_user: postgres
cron:
name: "Export database"
special_time: daily
job: pg_dump -U db_user -W -F t db_name > filename.tar
我试图简单地将$(日期+%Y-%m-%d-%H.%m.%S)附加到filename.tar,例如
filename-$(date +%Y-%m-%d-%H.%M.%S).tar
但是,这不起作用,因为当任务运行时,日期的值只设置一次,导致每个文件名都有一个ansible任务运行时的时间戳
我正在寻找解决这个问题的方法,并允许此作业为每个文件名生成新的时间戳。通常,我们有一种创建shell脚本来处理数据库备份的做法。这使我们能够捕获退出代码,并相应地记录/发送警报 虽然只需一个
pg_dump
命令即可实现简单的功能,但应该可以实现以下类似功能:
例如:
db backup.sh
#/bin/bash
DB_USER=“dbuser”
DB_PASSWORD=“dbpassword”
DB\u NAME=“DB\u NAME”
BACKUP\u FILE=“db BACKUP-$(日期+%Y-%m-%d-%H.%m.%S).tar”
cmd=“pg_dump-U${DB_USER}-W-F t${DB_NAME}>${BACKUP_FILE}”
如果$cmd;然后
#做点什么
其他的
#做点别的
fi
然后在Ansible中,将此脚本复制到目标,并创建cron
作业以运行此脚本
#例如复制到临时目录
-名称:复制数据库备份脚本
副本:
src:'db backup.sh'
dest:“/tmp/db backup.sh”
模式:“0755”
所有者:“博士后”
组:'博士后'
-名称:运行cronjob备份数据库
成为用户:postgres
克朗:
名称:“导出数据库”
特别时间:“每日”
作业:'/tmp/db backup.sh'