[shell] 多进程脚本分析CVE数据库信息
2016-07-04 16:26
579 查看
参考链接:
https://bg2bkk.github.io/post/shell%E5%A4%9A%E7%BA%BF%E7%A8%8B%E5%AE%9E%E8%B7%B5/
https://bg2bkk.github.io/post/shell%E5%A4%9A%E7%BA%BF%E7%A8%8B%E5%AE%9E%E8%B7%B5/
$cat steps.sh rm -r output mkdir -p output #允许的进程数 THREAD_MAX=24 #$$是进程pid Pfifo="/tmp/$$.fifo" mkfifo $Pfifo #定义描述符为8848的管道 exec 8848<>$Pfifo rm -f $Pfifo #预先写入指定数量的换行符,一个换行符代表一个进程 for ((i=0;i<$THREAD_MAX;i++)) do echo -ne "\n" 1>&8848 done for URL in `cat CVE_XML_urls`; do { CVE_in_XML=`basename $URL|sed -e "s/.gz$//g"`; wget $URL; gunzip -f $CVE_in_XML.gz echo $CVE_in_XML; perl convert-nvdcve $CVE_in_XML grep cpe $CVE_in_XML|grep product |sort|awk -F '<|>' '{ if($3!="") print $3 }' > $CVE_in_XML.cpe for cpe_entry in `cat $CVE_in_XML.cpe`; do { #进程控制 read -u 8848 { echo $cpe_entry; vendor=`echo $cpe_entry |awk -F ":" '{print $3}'` product=`echo $cpe_entry |awk -F ":" '{print $4}'` perl NVD_parser.pl $CVE_in_XML.db $CVE_in_XML.idx_cpe.db $cpe_entry >> output/$vendor.$product.urls; echo -ne "\n" 1>&8848 }& } done }& done wait #关闭管道 exec 8848>&- echo "\nDone"
相关文章推荐
- android wifi 无线调试
- 运维入门
- 动态清空 nohup 输出文件
- install scrapy with pip and easy_install
- Linux Shell常用技巧
- Shell 脚本编程陷阱
- shell字符串操作详解
- Shell中删除某些文件外所有文件的3个方法
- Ruby中执行Linux shell命令的六种方法详解
- VB使用shell函数打开外部exe程序的实现方法
- Shell编程的一些知识集合
- Shell中的for和while循环详细总结
- 什么是Shell?Shell脚本基础知识详细介绍
- Shell脚本中引用、调用另一个脚本文件的2种方法
- Shell脚本解压rpm软件包
- Linux Shell 数组建立及使用技巧
- Shell脚本实现复制文件到多台服务器的代码分享
- Shell脚本实现批量替换文件内容
- Shell脚本实现的一个简易Web服务器例子分享
- linux Shell学习笔记第五天