bashに関するtechnicolor5のブックマーク (5)

  • flockでshellの多重起動を防止する仕組みについて考えてみた - Qiita

    Linuxサーバ上で定期実行だったり、多くの人が実行する可能性があるshellの多重起動を防止するための仕組みはサービスを運用していると割と遭遇しました。 その方法の一つであるflockを使った防止方法について、仕組みを分かる範囲で整理してみます。 方法1 実行コマンドに記述する(crontabの中とか)

    flockでshellの多重起動を防止する仕組みについて考えてみた - Qiita
  • シェルスクリプトで安全簡単な二重起動防止・排他/共有ロックの徹底解説 - Qiita

    はじめに シェルスクリプトで二重起動防止やロックをする方法を検索すると、いろいろな方法や書き方が見つかりますが、どれを使えばよいのか、当に正しく動くのか、不安になりますよね? ディレクトリ (mkdir) やシンボリックリンク (ln) を使った独自実装の例も見かけますが、エラー発生時や予期せぬ電源断、CTRL+C で止めたときなどでも問題は発生しないのでしょうか? まず、ディレクトリやシンボリックリンクを使った独自実装はしない。これを肝に銘じてください。シェルスクリプトでのロック管理はとても難しく、一般的な排他制御の知識に加えて、シェルスクリプト特有の問題、シグナルやトラップ、サブシェルや子プロセスの問題、さらには特定のシェル固有の仕様やバグなどさまざまな問題に対処する必要があり大変です。独自実装の例では古いロックファイルが残ってしまい、それをいつどのタイミングで片付ければ安全なのか?

    シェルスクリプトで安全簡単な二重起動防止・排他/共有ロックの徹底解説 - Qiita
  • UNIX & Linux コマンド・シェルスクリプト リファレンス

    目次 当サイトについて bash シェルスクリプト入門 -シェルスクリプトのいろは- コマンド Tips シェルスクリプト Tips 変数を使用する 配列を使用する 入力と出力 if 文と test コマンド for 文の使用方法 while 文の使用方法 case 文の使用方法 関数の使用方法 引数を処理する 終了ステータス シグナルと trap コマンド フィルタを使用した文字列操作 1 フィルタを使用した文字列操作 2 日付を取得する 文字コードと改行コード シェルスクリプトのデバッグ AWK リファレンス (Deprecated) シェルスクリプト ライブラリ 『ether.sh』 お知らせ Bluesky を始めました @sunone.me 変更履歴 2023.10.07 ページ内リンクを修正した。 2021.02.01 このサイトに「もう 1 ページ追加しよう」と思ってから、も

    UNIX & Linux コマンド・シェルスクリプト リファレンス
  • shell でディレクトリ内のファイルに対してループ処理 - Qiita

    for file in `\find . -maxdepth 1 -type f`; do # TODO done \find . -maxdepth 1 -type f カレントディレクトリの’ファイル’のみを取得している \ls -F | grep -v / でもファイルを絞り込めるが実行可能ファイルに「*」がついたりする 例 中身を結合してファイルに出力

    shell でディレクトリ内のファイルに対してループ処理 - Qiita
    technicolor5
    technicolor5 2016/12/12
    shellでディレクトリ内のファイルに対してループ処理
  • bashのfor文を使ってディレクトリ内のファイル一覧とディレクトリ一覧を出力 | VPSサーバーでWebサイト公開 備忘録 ~Linux、MySQLからAJAXまで

    指定したディレクトリ内のファイルのパス一覧とディレクトリのパス一覧を出力するスクリプトを作成しました。 このスクリプトでは、①指定したディレクトリ内のファイル(ディレクトリ)一覧取得、②ファイルとディレクトリの判定、③配列への代入、④配列の表示を行っています。 ①ファイル一覧を取得 “/home/user/”というディレクトリ配下のファイル一覧を表示する例です。 files="/home/user/*" for filepath in $files; do echo $filepath done ②ファイルとディレクトリの判定 ・通常のファイルであるか判定 if [ -f $filepath ] ・ディレクトリであるか判定 if [ -d $filepath ] ③配列への代入 ・空の配列を作成 fileary=() ・配列に要素を追加 変数$filepathの中身をfileary配列に追

    technicolor5
    technicolor5 2016/12/12
    ディレクトリ内のファイル一覧とディレクトリ一覧を取得
  • 1