Centos 7.x 系统测试 例如: 一个目录(/home/dfsc/ftp)下面有 多种类型(mp3,mp4,jpg,log)的文件,还有 多个目录(recode,artical等),我们只想同步其中一种或多种类型的文件到服务器? 创建一个文件在位置,名称可以任意。 vim /tmp/ftpmp3.list #把你要 过滤的目录和要过滤的文件类型写在这个文件中 recode artical *.log 保存退出 同步的命令: rsync -auzP --delete --exclude-from=/tmp/ftpmp3.list /home/dfsc/ftp/ rsync_backup@192.168.95.17::luyin --password-file=/etc/rsync.password >/tmp/rsy.log 2>&1 --exclude-from=/tmp/ftpmp3.list #rsync 在同步的时候会排除这个文件中所记录的 目录 或者 文件 建议:如果只排除一个目录,也这样写,便于以后修改,也可以用 --exlude=recode 完整的脚本: #!/bin/bash LOCALDIR=/home/dfsc/ftp RSYNC_IP=192.168.95.17 RSYNC_USER=rsync_backup RSYNC_PASS="--password-file=/etc/rsync.password" RSYNC_MOD=luyin RSYNC_DEST="$RSYNC_USER@$RSYNC_IP::$RSYNC_MOD" function rsyncdata() { clear date echo -e "\033[31m 开始数据同步传输..........\033[0m" sleep 1 rsync -auzP --delete --exclude-from=/tmp/ftpmp3.list $LOCALDIR/ $RSYNC_DEST $RSYNC_PASS >/tmp/rsy.log 2>&1 if [ $? -ne 0 ];then echo "Rsync 有问题,日志文件/tmp/rsy.log ." exit else echo -e "\033[31m Rsync 数据同步完成。\033[0m" fi } START_TIME=`date +%s` rsyncdata date END_TIME=`date +%s` #程序总花费的时间,计算出来是秒为单位的。 TOTAL_TIME=`expr $(($END_TIME-$START_TIME))` #程序总花费的时间 对 3600 取模,得到小时数 TOTAL_H=`expr $TOTAL_TIME / 3600` #程序总花费的时间对3600取余,再对 60 取模,得到 分钟数 TOTAL_M=`expr $TOTAL_TIME % 3600 / 60` ##程序总花费的时间对3600取余,再对 60 取余,得到 秒数 TOTAL_S=`expr $TOTAL_TIME % 3600 % 60` echo "程序总耗时: $TOTAL_H 小时 $TOTAL_M 分 $TOTAL_S 秒 。"