首页 > 大数据 > Hadoop > linux脚本hadoop数据文件采集
#!/bin/bash
################################
#2013/12/11
#作者 方华龙
#hadoop数据文件采集
###############################
date
ROOT=`dirname $0`
CONF=./test.conf
#可以利用读取配置方法加载多个服数据
#for conf in `cat $CONF`
#do
# echo $conf
#done
#是用SCP采集1,WGET采集0
is_scp=0
#scp www@121.9.245.117:/data/resin/aclocal.m4 /data/test1.m4
nowtime=`date %s`
startTime=$(($nowtime-36000))
#hadoop保存地址
hadoopPath=/data/
#采集的服务器地址
urlserver=http://service.uwan.com
#采集账号地址
IPserver=www@121.9.245.117:
#采集服务器保存数据地址
getPath=/data/resin/
#日志保存目录
LOG=/data/warren/log/
#采集后保存的地址
savePath=/data/warren/data/
#检查LOCK
LOCK=.lock
if [ -f $LOCK ]
then
echo 'error!app is run!'
exit
fi
#上锁
touch $LOCK
#判断地址是否已经创建
if [ -d $savePath ]
then
echo 'file is Ok!'
else
mkdir $savePath
fi
#检查日志目录
if [ -d $LOG ]
then
echo 'log path is ok!'
else
mkdir $LOG
fi
#记录运行日志2>&1记录所有日志
exec >> $LOG/gather_`date %Y%m%d`.log 2>&1
#执行采集
while [ $startTime -le $nowtime ]
do
#拼凑采集文件的名称
filename=`date %Y%m%d%H -d "@$nowtime"`.log
savefilename=$savePath$filename
#判断文件是否已经存在
if [ -f $savefilename ]
then
is_repeat=1
else
is_repeat=0
fi
if [ $is_scp -eq 1 ]
then
scp $IPserver$getPath$filename $savefilename
else
url=$urlserver$getPath$filename
wget -O $savefilename $url
fi
#如果文件存在,推送到hadoop服务器
if [ -f $savefilename ]
then
if [ $is_repeat -eq 1 ]
then
$HADOOP_HOME/bin/hadoop fs -rm $hadoopPath/$filename
fi
$HADOOP_HOME/bin/hadoop fs -put $savefilename $hadoopPath/$filename
fi
nowtime=$(($nowtime-3600))
done
#解除锁
rm -rf $LOCK
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21170748/viewspace-1119693/ ,如需转载,请注明出处,否则将追究法律责任。