タグ

ブックマーク / blog.katty.in (3)

  • mkdirでディレクトリが存在しない時だけディレクトリを作成する。

    ディレクトリを作成するコマンドmkdir ディレクトリを作成するコマンドは、mkdirです。 $ mkdir some_directory これでsome_directoryディレクトリができます。 既にディレクトリが存在するとエラー しかし、既にディレクトリが存在するとエラーになります。 $ mkdir some_directory mkdir: some_directory: File exists エラーが出てほしくないので、存在しない時だけ作成したいです。 if文を使って書く 単純に先に存在を確認してからmkdirすれば良いです。 if [ ! -e some_directory ]; then mkdir some_directory ; fi でも面倒くさいし、汚いです。 ぐぐってみました。 ぐぐったらすぐに出ました。 How to mkdir only if a dir do

    mkdirでディレクトリが存在しない時だけディレクトリを作成する。
  • Linuxシェルでファイルの中身の一部を書き換えるsed | 三度の飯とエレクトロン

    Linuxのシェル上でファイルの一部を書き換えたいときがあります。 たとえば、設定ファイルを書き換えるシェルスクリプトを作りたい、など。 テキスト変換コマンドsed sedは、stream editorの略で、入力されたテキストに何かしらの変換をかけて出力するコマンドです。 テキトーにfruitsなどというテキストファイルを作っておきます。 $ cat << 'EOT' >> fruits > apple > banana > orange > grape > EOT 中身を表示してみます。フルーツ盛り合わせです。 $ cat fruits apple banana orange grape 中身をsedに渡して、バナナをバナナジュースにします。 $ cat fruits | sed "s/banana/banana juice/" apple banana juice orange gr

    Linuxシェルでファイルの中身の一部を書き換えるsed | 三度の飯とエレクトロン
  • ロック待ちでハマる前に知りたかったMySQL InnoDBの行ロックとテーブルロックの挙動

    整合性をしっかりとらないといけない処理ではトランザクションをかけるのですが、どうもトランザクションのロック待ちでタイムアウトしてしまうことがあるようです。 java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction トランザクションでテーブル全体にロックがかかってしまう 要するに、「トランザクションを実行するためにロックを獲得しなければいけないが、他のコネクションがロックを握っていて、ロックが獲得できない」ということです。 これの根的な原因は何かと調べますと、InnoDBでトランザクションを使用するときに、行ロックではなく、テーブル全体にロックがかかってしまう場合がある、というところにたどり着きました。 「InnoDBで行ロック/テーブルロックになる条件」を見ながら、少し試してみます。 テーブ

    ロック待ちでハマる前に知りたかったMySQL InnoDBの行ロックとテーブルロックの挙動
  • 1