こんにちは。面倒くさがり屋エンジニアのための”楽をしようよ”コーナーです。
サーバーで作業するときに作業用の一時ディレクトリを/tmpに作成する事があるのですが、注意しないと重複してトラブルになる事があります。
よくあるパターンとして /tmp/[today_yyyymmdd] のように作業日を名前にしたディレクトリを作成をする事があります。問題はこのパターンはありがちで別のチームでも同じディレクトリを作成する事がある点です。
実際に何度か体験しているのですが、別チームも使っているディレクトリを丸ごと消してしまったとかファイルを勝手に移動されただとか、作業影響が結構あります。
作業手順書の中でどう解決するか考えると「注意しましょう」では意味が無いので手っ取り早く確実な方法として、最初から重複しない名前でディレクトリを作る事にしています。
mktempで一時ディレクトリを作成する
mktempは「-d」オプションを付けると/tmpに一時ディレクトリを作成します。
$TMPDIRが設定されているか「-p」オプションを付ければ/tmp以外のディレクトリを指定できますが、わざわざ指定する必要もないでしょう。
# workdir=$(mktemp -d) && echo ${workdir}
/tmp/tmp.mphAgnXz2P
#
この後は基本的に手順書の中で作業用ディレクトリを ${workdir} で定義しておきます。
すべて手打ちで作業する場合は別として、手順書のコマンドをコピー&ペーストで行う場合は今回のように一時ディレクトリを使用した方がトラブルなく作業を終える事ができるはずです。