Linux 与多个IP地址并行的Bash脚本

Linux 与多个IP地址并行的Bash脚本,linux,bash,logging,parallel-processing,Linux,Bash,Logging,Parallel Processing,我想创建一个脚本,其中一个记录来自不同IP的信息,同时将日志写入不同的文件,它应该像while:true那样运行,但当我启动脚本时,它只记录文本文件中的第一个IP地址,我已经尝试了: #!/bin/bash IP=`cat IP.txt` for i in $IP do /usr/bin/logclient -l all -f /root/$i.log $i 19999 done IP.txt文件包含: x、 x.x.x x、 x.x.x x、 x.x.x x、 x.x.x宁可在使用时使用,而

我想创建一个脚本,其中一个记录来自不同IP的信息,同时将日志写入不同的文件,它应该像while:true那样运行,但当我启动脚本时,它只记录文本文件中的第一个IP地址,我已经尝试了:

#!/bin/bash
IP=`cat IP.txt`
for i in $IP
do
/usr/bin/logclient -l all -f /root/$i.log $i 19999
done
IP.txt文件包含:

x、 x.x.x

x、 x.x.x

x、 x.x.x


x、 x.x.x

宁可在使用时使用,而不是用于。大概是这样的:


读行时
;do/usr/bin/logclient-all-l-f/root/$LINE.log$LINE 19999;完成
看起来您的脚本应该按原样工作,如果
logclient
按我的想法工作,它将为每个IP地址创建大量不同的日志。执行
ls/root/*.log
应显示生成的所有日志

并行执行并不是bash特别擅长的事情。它可以用于后台任务,但是跟踪这些进程并且不使CPU/RAM过载可能很困难

GNU并行 如果您的系统安装了它,我强烈建议您使用。它将为每个CPU核心启动一个进程,以使parellizing作业更容易<代码>并行
仅在所有子项退出时退出

parallel /usr/bin/logclient -l all -f /root/{}.log {} 19999 ::::+ IP.txt
# all jobs finished, post-process the log (if wanted)
cat /root/*.log >> /root/all-ips.log

检查你的ip上是否有回车。TXT是的,我说,脚本可以工作,但第一个项目,而不是其他项目。祝你回车好运。#/bin/bash/usr/bin/parallel-j53/usr/bin/logclient-lall-f/root/logs/{}.log{}19999