スレッドを使用しないbashスクリプトを作成しました。私はあなたの助けを借りてそれを実現したいと思います。
実行中とは、Threadripper 3990X
多くのスレッドを実行できることを意味します。
今私のbashスクリプトは次のようになります。
#!/bin/bash
#!/usr/bin/env python3
while true; do # Start
while read -r line; do # 1
python3 script1.py -d $line --output file.txt # 2
done < domain && while read -r line; do # 3
./script2 -d $line # 4
done < domain && while read -r line; do # 5
go run main.go -d $line -o file2.txt # 6
done < domain && mv *.txt /mnt/c/savehere && # 7
dos2unix savehere/*.txt && sort savehere/*.txt | uniq | tr -d '<>,' > results-$(date +%d-%m-%Y_%H_%p).txt && python3 discord-notify.py # 8
done # End
domain
ファイルには500-1500
ドメインのリストが含まれており、bash, python, golang
スクリプトに1行ずつ渡されます。完了したら、.txt
ファイルを"root"
フォルダに出力し、フォルダ/mnt/c/savehere
に移動して1つの.txt
ファイルにマージします。完了すると、自動的にフッ化を知らせ、自動的に通知します。 Bash スクリプトを再起動します。
実際にはそれほど遅くはありませんが、強力なCPUを実行しているので、このスクリプトをより速く実行し、多くの時間を節約する方法があるかもしれません。
ベストアンサー1
適切なインデントは実際には明確さを高めることができます。変数を引用することを忘れないでください。
while true; do
while IFS= read -r line; do
python3 script1.py -d "$line" --output file.txt
done < domain &&
while IFS= read -r line; do
./script2 -d "$line"
done < domain &&
while IFS= read -r line; do
go run main.go -d "$line" -o file2.txt
done < domain &&
mv *.txt /mnt/c/savehere &&
dos2unix savehere/*.txt &&
sort savehere/*.txt | uniq | tr -d '<>,' > results-$(date +%d-%m-%Y_%H_%p).txt &&
python3 discord-notify.py
done
xargs
読みながらシェルループのように動作し、おそらくはるかに高速です。
while true; do
xargs -d '\n' -I LINE python3 script1.py -d LINE --output file.txt < domain &&
xargs -d '\n' -I LINE ./script2 -d LINE < domain &&
xargs -d '\n' -I LINE go run main.go -d LINE -o file2.txt < domain &&
mv *.txt /mnt/c/savehere &&
dos2unix savehere/*.txt &&
sort savehere/*.txt | uniq | tr -d '<>,' > results-$(date +%d-%m-%Y_%H_%p).txt &&
python3 discord-notify.py
done