スクリプト中断処理

スクリプト中断処理

120,000から500,000を超えるファイルを繰り返す必要があります。findとてもよく処理されました。

find $PWD -type f -path "fragments/*.pdbqt"

何らかの理由で同じファイルセットを同じ順序で再リストしたいと思います。リストが英数字でソートされているか、fstat電話番号などでソートされているかは関係ありません。続行する前に出力全体を知る必要があるため、スクリプトの実行が遅くなるため、使用はsortオプションではありません。findこれを行う方法を知っていますか?

直す。 私の問題を正しく説明できませんでした。私のスクリプトがそのように大量のファイルを処理すると、マイナーな中断が発生し、UPSがダウンする可能性があります。私のスクリプトは中断された部分から続行する必要があります。残りのファイルはどのように処理しますか?

ベストアンサー1

検索出力をファイルに保存し、スクリプトがそのファイルを処理するファイルのリストとして使用するようにします。スクリプトがファイルを処理したら、ファイル名を別のファイルに書き込むようにします。スクリプトが中断された場合、grepスクリプトの再起動時に処理されたファイルを除外するのは簡単です。例:

touch files_already_processed
while IFS= read -r file
do
    # skip file if already processed
    grep -q -e "$file" files_already_processed && continue
    # process the file
    # processing code goes here
    echo "$file" >> files_already_processed
done <files_to_process

おすすめ記事