rsync.sh
#!/bin/bash
SCRIPT=$0
if [ $# != 3 ] && [ $# != 4 ]
then
echo "args error:"
echo " e.g. : $SCRIPT 'host src dest' "
exit 1
fi
DATE=`date +%Y%m%d`
host=$1
src=$2
dest=$3
logDir=log/$DATE
if [ ! -d log ]
then
mkdir log
fi
if [ ! -d $logDir ]
then
mkdir $logDir
fi
isDelete=no # 处理同步时是否删除
if [ $# == 4 ]
then
if [ yes == $4 ]
then
isDelete=$4
fi
fi
echo "isDelete: "$isDelete
#日志文件
log=$logDir/$host"_"${dest##*/}.log
echo -e "\nstart*************************************************" >> $log
date >> ${log}
echo -e "host=$host src=$src dest=$dest" >> $log
ansible-playbook rsync.yml --extra-vars "host=$host src=$src dest=$dest delete=$isDelete"
ES=$?
if [ "$ES" -ne 0 ]; then
exit $ES
fi
date >> ${log}
echo -e "end*************************************************" >> $log
rsync.yml 文件
- name: sync_package
hosts: '{{ host }}'
vars:
tasks:
- name: sync {{src}} to {{dest}}
synchronize: src={{src}} dest={{dest}} compress=yes delete={{delete}} recursive=yes checksum=yes rsync_opts=--verbose,--exclude-from=exclude.txt