shell+python模拟数据产生到文件,后续给flume监控使用
准备工作
1.新建一个test目录 mkdir test
2.进入到test目录,新建一个data目录 mkdir data
3.在test目录下新建俩个文件用来保存进程id touch temp.pid touch pres.pid
4.所有的脚本写在test目录下,数据在data目录下
start-script.sh
启动脚本 启动俩个py脚本,并把进程id保存到指定文件
nohup python temp.py &
echo $! > temp.pid
nohup python pres.py &
echo $! > pres.pid
temp.py
循环将消息写入到data/data.txt
import random
import time
def main():
sids = ['t_china_10011', 't_china_10013', 't_china_10015', 't_china_10017', 't_china_10019', 't_china_10021']
values = [75.2, 75.3, 75.4, 75.5]
while True:
sid= random.choice(sids)
value= random.choice(values)+random.randint(3, 6)
sts = int(time.time())
with open('data/data.txt', 'a') as file:
file.write(sid + ',' + str(sts) + ',' +str(value)+'\n')
time.sleep(1)
if __name__ == '__main__':
main()
pres.py
import random
import time
def main():
sids = ['p_china_10012', 'p_china_10014', 'p_china_10016', 'p_china_10018', 'p_china_10020', 'p_china_10022']
values = [5.2, 5.3, 5.4, 5.5]
while True:
sid= random.choice(sids)
value= random.choice(values)+random.randint(3, 6)
sts = int(time.time())
with open('data/data.txt', 'a') as file:
file.write(sid + ',' + str(sts) + ',' +str(value)+'\n')
time.sleep(1)
if __name__ == '__main__':
main()
执行shell脚本
在test目录下,执行 sh start-script.sh
sh start-script.sh
最后的目录结构
[root@server03 test]# ll
total 28
drwxr-xr-x 2 root root 22 May 28 14:21 data
-rw------- 1 root root 156 May 28 11:51 nohup.out
-rw-r--r-- 1 root root 6 May 28 14:07 pres.pid
-rw-r--r-- 1 root root 501 May 28 14:23 pres.py
-rw-r--r-- 1 root root 84 May 28 13:06 start-script.sh
-rw-r--r-- 1 root root 6 May 28 14:07 temp.pid
-rw-r--r-- 1 root root 505 May 28 14:21 temp.py
停止任务
用kill命令去杀死进程