2021年9月8日
需求:将不同日期的数据放在kafka对应日期的topic中
办法:将flume服务在0点时候停止,将文件.conf中配置的topic改成对应日期的topic,然后重启flume服务
shell脚本:
source /etc/profile
#! /bin/bash
for i in slave2
do
ssh $i "/root/bin/flume2.sh"
echo " --------停止 $i flume-------"
ssh $i "ps -ef | grep file-flume-kafka | grep -v grep |awk '{print \$2}' | xargs -n1 kill"
sleep 2
echo "---------修改topic----------"
h="IMS"
echo "$h"
o=`date +%Y%m%d -d '-1 day'`
echo "$o"
n=`date +%Y%m%d`
echo "$n"
sed -i "s/$o/$n/g" /opt/flume/conf/file-flume-kafka.conf
echo " --------启动 $i flume-------"
ssh $i `nohup /opt/flume/bin/flume-ng agent --conf-file /opt/flume/conf/file-flume-kafka.conf --name agent -Dflume.root.logger=INFO,LOGFILE >/opt/flume/log2.txt 2>&1 &`
done
脚本用命令行执行时,可以实现,但用crontab定时任务服务只能停止和修改日期但重启不起来。
#!/bin/bash 前加source之后就解决了。但不知道什么原因…