shell+python模拟数据产生到文件

本文介绍如何使用Shell脚本启动Python程序,模拟生成特定格式的数据,并将其写入文件,以便于Flume进行数据监控。Python脚本通过随机选择设备ID和数值,定时将数据追加到指定文件中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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命令去杀死进程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值