파일에서 루프를 읽을 때 여러 스레드 실행

파일에서 루프를 읽을 때 여러 스레드 실행

스레드를 사용하지 않는 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스크립트에 한 줄씩 전달됩니다. 완료되면 .txt파일을 "root"폴더로 출력한 다음 /mnt/c/savehere폴더로 이동하여 하나의 .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

관련 정보