2016-09-15 21 views
0

複数のプログラムをまとめてパイプラインを作成しましたが、残念ながらこれらのプログラムは/tmpフォルダに大量の一時ファイルを作成しています。大きなデータセットを使用すると、/tmpフォルダがいっぱいになりパイプラインがクラッシュします。現在の作業ディレクトリにmktempを使用して一時ディレクトリを作成するにはどうすればよいですか?

テンポラリファイルをパイプラインが実行されている現在の作業ディレクトリに作成され、/tmpフォルダには作成されないようにエクスポートするにはどうすればよいですか?

現在、私は私の現在の作業ディレクトリにすでに作成したディレクトリ/workTMPDIRのenv変数をエクスポートしようとしましたが、一時ファイルがまだ/tmpフォルダに作成されています:

export TMPDIR=$(mktemp -d --tmpdir=/work) 
<script> 
rm -rf $TMPDIR 

プログラムがありません作成された一時ファイル用に異なる出力フォルダを設定するオプションがあります。

+0

どのようなエラーメッセージが表示されますか?に書き込まれたファイルはありません。エラーメッセージが表示されたときは、必ずそのエラーメッセージを記述してください。 –

+0

パイプラインのエラーメッセージ?典型的なIOErrorです:デバイスエラーで利用可能なスペースはありません。これは、/ tmpファイルがいっぱいのときに非常に一般的です。 – System

+0

ハードドライブに残っている容量(つまり、 'df -h。')? –

答えて

0

ディレクトリworkが現在のディレクトリにある場合は、/workworkに変更してください。 /workは、最上位のディレクトリが/workであることを意味します。スラッシュがなければ、相対ディレクトリになります。

私のコンピュータでこのコードをテストしたところです。

mkdir work 
export TMPDIR=$(mktemp -d --tmpdir=work) 
ls work 
# tmp.AWA4dTERha 
rm -rf $TMPDIR 
ls work 
# --no output-- 
+0

すばらしい、私はこれを打つことを許可しなさい! – System

+0

問題を解決していないようです。テンポラリファイルはまだ/ tmpディレクトリに作成されています。 – System

+0

@ System私がテストしたコードを含むように私の答えを更新しました。 –

関連する問題