- 论坛徽章:
- 18
|
本帖最后由 bikkuri 于 2014-07-03 15:15 编辑
用这段代码已经实现了更新enb.max的功能。- #!/bin/sh
- number=8342
- ue=ue$number.upd
- em=enb.max
- upd_record=`head -1 $ue`
- ssh user@host.com 'awk -vupd_record="'"$upd_record"'" "BEGIN{\$0=upd_record;upd_enb=\$6;upd_val=gensub(/\[([0-9]+).*/,\"\\\\1\",1,\$NF)}!found&&+gensub(/\[([0-9]+).*/,\"\\\\1\",1,\$NF)<+upd_val{print upd_record;found=1}\$6!=upd_enb;END{if(!found)print upd_record}" '"$em"' > '"$em.tmp"';mv '"$em.tmp"' '"$em"''
复制代码 crontab里确实是因为路径的错误没有得到输出,改正后就可以了。
但是还是有一个问题,就是+gensub(/\\[([0-9]+).*/,\"\\\\1\",1,\$NF)<+upd_val这一段可能还是有问题,
当UE中的max_enb值比enb.max中的max_enb值更小的情况下,这个脚本依然用UE的状态信息替换掉了enb.max中max_enb更大的记录。
Herowinter 发表于 2014-07-02 17:28 ![]()
回复 26# bikkuri
因为你的每个UE的.upd文件其实都只有一行,可以把这一行更新
的内容当作参数传给awk, ... |
|