2

4 時間ごとに新しいデータ ファイルで更新される Linux VM があります。ファイルは、01 から 10 までの番号が付けられたディレクトリに編成されています。

アップロードされたファイルを別のファイル タイプに変換する実行可能ファイル (convert.exe) があります。

ファイル (convert.exe) を処理して別のディレクトリにリダイレクトするパイプラインを開発したいと思います。

私はすでにこれを一連のLinux bashスクリプトでプログラムしました。次のコードを使用します。

for d in $(find /mnt/data01/dpad -mindepth 1 -name "DIR*" -type d); do

  #recursively iterate through files
  #for those that were modified within the last day (i.e. new files added)
  for f in $(find $d -type f -mtime -1); do

    #determine appropriate folder for file to move to
    newdirname=$(basename $d)
    newfilename=$(basename $f)

    mono convert.exe $f -o /mnt/convertedfiles/$newdirname/$newfilename
  done
done

ただし、アクセスできる処理能力を使用して、複数の CPU で並行して実行し、よりリアルタイムの変換方法と結果を取得したいと考えています。

Python に変更し、snakemake を使用してコマンドを配布することを計画していました。

私はプログラミングは初めてではありませんがpythonsnakemakeコマンドは初めてです。

このプロセスを開始する方法について、誰かが洞察を提供できるかどうか疑問に思っていますか?

4

2 に答える 2

0
doit() {
  d="$1"
  for f in $(find $d -type f -mtime -1); do
    #determine appropriate folder for file to move to
    newdirname=$(basename $d)
    newfilename=$(basename $f)

    mono convert.exe $f -o /mnt/convertedfiles/$newdirname/$newfilename
  done
}
export -f doit
find /mnt/data01/dpad -mindepth 1 -name "DIR*" -type d | parallel doit
于 2016-06-18T23:55:07.653 に答える