分享一个适用的脚本,通过ftp协议传输asterisk生成的录音到单独的录音存储服务器上

分享一个实用的脚本,通过ftp协议传输asterisk生成的录音到单独的录音存储服务器上

通过系统cron来执行,将每天生成的录音传输到单独的录音服务器上,该脚本是我一直在用的,在局域网内,每天传输几万的录音,个把小时就可以搞定,希望对你有能所帮助


#!/bin/bash
#2013/4/24 - Author: zhangtuo 
#luckytuo@gmail.com
#将cti服务器录音上某一天的录音传到ftp服务器上,并记录日志
#如果不传参数,就表示上传今天的录音
#调用格式:
#传当天的录音   ./ftponeday.sh 
#传前一天的录音 ./ftponeday.sh -1
#传某一天的录音 ./ftponeday.sh 20130423


USER=ftpuser2		#FTP 账号
PASS=zhangtuo123				#FTP 密码
HOST=192.168.2.247

source /root/.bash_profile
path_now=`pwd`
path_log=/var/log/ftp_log.txt
echo "============================================================================" >> $path_log

if [ -z "$1" ];then
	path_day=`date +%Y%m%d`
elif [[ "$1"x = "-1"x ]]; then
	path_day=`date -d '-1 days' +%Y%m%d`
else
	path_day=$1
fi

d=`date +%Y-%m-%d_%H:%M:%S`
echo "==$d==$path_day==start============================" >> $path_log
path_all=/monitor/$path_day

if [ -d $path_all ];then
c=`ls   -l $path_all  |grep   "^-"   |   wc   -l `
echo "dir $path_day file count:$c" >> $path_log
cd $path_all
for filename in `ls`
do
ftp -nv $HOST <<!
quote USER $USER 
quote PASS $PASS  
prompt off
bin
cd $path_day
lcd $path_all
put $filename
close
!
done
else
echo "file $path_day bu cun zai" >> $path_log
fi
d=`date +%Y-%m-%d_%H:%M:%S`
echo "==$d==$path_day==end==============================" >> $path_log