- 参数
- 例子
- 添加一条定时任务, 3 1 2 echo hello
ansible test -m cron -a “hour=3 month=2 day=1 job=’echo hello’ name=’test’ state=present “ -k - 删除name为test的计划任务
ansible test -m cron -a ‘name=test state=absent’ -k - 添加一个定时任务,每天晚上凌晨三点系统备份脚本
ansible all -m cron -a “job=’/data/scripts/system_backup.sh’ minute=00 hour=03 state=present name=’system backup’”
用于管理定时任务(crontab 来操作)
参数
- backup: 对远程主机上的原计划内容修改之前做备份
- cront_file: 如果指定该选项,则用该文件替换远程主机上的cron.d目录下的用户计划任务
- day: 日(1-31,,/2,……)
- hour: 小时(0-23,,/2,……)
- minute: 分钟(0-59,,/2,……)
- mouth: 月(1-12,,/2,……)
- weekday: 周(0-7,*,……)
- job: 要执行的任务,依赖于state=present
- name: 该任务的描述,必选项。
- special_time:指定什么时候执行(被触发),参数:reboot,yearly,annually,monthly,weekly,daily,hourly。
- state:确认该任务计划是创建还是删除 Present(启用) | Absent(停用)
- user:以哪个用户的身份执行
例子
添加一条定时任务, 3 1 2 echo hello
ansible test -m cron -a “hour=3 month=2 day=1 job=’echo hello’ name=’test’ state=present “ -k
删除name为test的计划任务
ansible test -m cron -a ‘name=test state=absent’ -k
添加一个定时任务,每天晚上凌晨三点系统备份脚本
ansible all -m cron -a “job=’/data/scripts/system_backup.sh’ minute=00 hour=03 state=present name=’system backup’”
/data/scripts/system_backup.sh
#/bin/bash
#备份策略:每天进行一次全量备份,本地保留备份7天
#如需备份系统其他路径,请在变量BACKUP_DIR新增一个路径,
TIME=$(($RANDOM %1800+1))
sleep $TIME
. /etc/profile
HOST=`hostname`
DATE=`date +%F`
IP=`ip a|grep inet|egrep -v "127.0.0.1|fe80|::"|awk -F'/' '{print $1}'|awk '{print $2}'|head -1`
BACKUP_DIR="/etc/ /var/spool/cron/ /data/scripts/*.sh /home/*/.ssh/ /root/.ssh/ /boot/grub/grub.conf"
mkdir -p /data/backup/$DATE/$IP-$HOST
cd /data/backup/$DATE/$IP-$HOST
tar -czf system.tar.gz $BACKUP_DIR --exclude=*.svn --exclude=*.git
find /data/backup/ -maxdepth 1 -mtime +7|xargs rm -rf