はじめに SSH 接続で時間の掛かるシェルスクリプトをバックグラウンドで走らせて帰りたいのに、SSH 接続を切るとジョブが死んでしまいます。SSH 接続に限らず目の前の OS からログアウトしたりターミナル エミュレータを終了しても同じ現象が起こります。 この症状は正常です。なぜなら、バックグラウンド ジョブを起動したプロセス(ログイン シェル)が子プロセスである該当のバックグラウンドジョブをハングアップ シグナル( HUP )によって終了させるからです。 シェルスクリプトを起動した親プロセスは子プロセスの終了状態を監視しています。ですからログアウトして親プロセスであるシェルが終了すると子プロセスはゾンビ プロセスとなってしまうので親プロセスとなるシェル(ログインシェル)は子プロセスであるバックグラウンド ジョブを kill ( kill -HUP ) するのです。 nohup コマンド
Get solutions of one-liner programming problems
Captcha security check calcurio.com is for sale Please prove you're not a robot View Price Processing
OSC2011 Tokyo/Fallで、日本gnu awkユーザー会の斉藤さんと行ったプレゼンテーションです。awkとbashの馴れ合い、もとい、共存共栄がテーマです。
B! 33 0 0 0 sedを使って文字列を変換する際、 Mac等BSD系sedだと変換後に改行を出すのが一筋縄ではいかない、と言う話。 GNU sedでの改行変換 BSD sedでの改行出力 BSD sedでのスマートな改行出力 おまけ おまけ2 GNU sedでの改行変換 環境: Linux Bash 4.2.37 GNU sed version 4.2.1 GNU sedでは改行の出力は\nを指定してあげるだけで出来ます。 $ echo "aaa\nbbb"|sed "s/\\\\n/\n/" aaa bbb 入力の方の\nを実際の改行文字に変えたいような場合、 出力側に\nを指定してあげれば良いだけです 1。 BSD sedでの改行出力 環境: Mac Bash 4.3.24 BSD sed (May 10, 2005, バージョンの見方が分からない。。。) 同じコマンドを打って
パイプライン は、最近のソフトウェアエンジニアリングにおいて、非常に便利な(そして驚くほど活用されていない)アーキテクチャパターンです。ソフトウェアでデータの流れを制御するためにパイプとフィルタを用いる考え方は、最初のUNIXシェルが作られた1970年代からあります。もしターミナルエミュレータでパイプ” | ”を使ったことがあるなら、”パイプとフィルタ”を活用できていることになります。以下の例を見てみましょう。 cat /usr/share/dict/words | # Read in the system's dictionary. grep purple | # Find words containing 'purple' awk '{print length($1), $1}' | # Count the letters in each word sort -n | # Sort l
先日作成を進めていたシェルスクリプトのWhile文で、変数に値が代入されていない事があったので、その備忘。 これは、Whileと他のコマンドを組み合わせた時に、その組み合わせ方に問題があるとサブシェルとして扱われてしまう事からくる問題だ。 たとえば、以下のように引数で読み込んだファイルの頭に行番号を追記するシェルスクリプトを記述したとする。 #!/bin/sh i=0 cat $1 | while read line; do i=`expr $i + 1` TEXT=$TEXT`echo $i`":$line\n"; done echo $TEXT で、実際にこのスクリプトを実行すると、以下のようになる。 /work/test$ cat test.txt testtest testtest1 testtest2 testtest3 /work/test$ sh test.sh test.t
あるログファイルに特定のパターンや特定の文言が出たら それをトラップして対応するアクションを行わせたい… というような仕組みを、 一般にそう言うかどうか知らないが、ログトラップと呼ぶことにする。 出来合いのツールとしては swatch が定番である。 余裕があれば|面倒クサければ、自作してもよい。 どのようなツールを使うとしても、決めておくことは以下の通り。 監視対象ファイル 引っかけたい文字列 引っかけたあとの挙動 どのユーザで処理するか swatch の設定 導入は依存モジュールの判断が面倒なので、ports から入れると楽だ。 # cd /usr/ports/security/swatch # make install clean あとは上述の4項目を仕込んでいく。 「監視対象ファイル」と「どのユーザで処理するか」は /etc/rc.conf にて設定する。 ユーザは指定しなければ
By Takehiko Kodama on April 1, 2008 5:52 PM | Permalink | Comments (0) | TrackBacks (0) Linuxを使っていれば、ログファイルのようにどんどん増え続けるファイルの内容を視認するために、「tail」コマンド「-f」オプションを使用して監視する場面が多いと思います。 「tail -f」コマンドは監視対象のファイルのサイズが小さくなっても自動末尾を検知し、そこから読み込みを再開します。 さらに、「--retry」オプションを使用すれば、監視対象のファイルが削除・リネームされても同じ名前のファイルが作成されると再び監視を開始するので、ログのローテーションにも対応できるというわけです。 この「tail」を利用すれば、簡単なスクリプトを使って、検知したメッセージをメールで通知ということも可能になります。 サンプルの
# !/bin/sh # メール送信設定 _to="nekogeruge_987@gmail.com" _from="appname@gmail.com" # メール件名設定 _hostname=`hostname` _application="AppName" _subject="Fatal error!!" _title="[${_application}][${_hostname}]${_subject}" # エラー条件 _error_conditions="ERROR" # ログファイルをtailし、_error_conditionsの条件にヒットしたらメールを送信する mail_alert() { while read i do echo $i | grep -q ${_error_conditions} if [ $? = "0" ];then echo $i | /usr/
最新の類似投稿としてシェルスクリプトのコーディングルール2014も併せてどうぞ。 2014/10/09追記 ぼくがシェルスクリプトを書くときに気にしていること、過去の失敗で書き留めたことを忘れないために。 1. グローバル変数は大文字 PATH や HOME など、環境変数が大文字なので、エクスポートする変数を大文字で書くという習慣は一般的であるような気がしますが、エクスポートする変数を抱えるシェルスクリプトを作成する機会が稀なので。 グローバル変数は大文字 ローカル変数は小文字 エクスポートする変数も大文字 関数内からグローバル変数にアクセスする場合がありますが、やはり区別していると、可読性が増すような気がするのでお勧めです。 2. awk を知る Unix 上にて文書処理をするときに、数多くのフィルタコマンド(grep、cut、tr、head、sort、uniq、sed、awk、wc、
Linux の seq コマンドは、シンプルな数列を作ってくれる。例えば、1 から 10 までの数字を表示させるには次のやうにする。 $ seq 10 1 2 3 4 5 6 7 8 9 10 途中の数字から始めたい場合は、その数字を第一引数にとる。5 から 10 までの数字列を得る場合の例は次の通り。 $ seq 5 10 5 6 7 8 9 10 このコマンドを何に使うのかというと、shell script の中で連番ファイルを作成するのに活用する。例えば、こんな感じ。 #!/bin/bash for i in `seq 10`; do echo $i.jpg done echo コマンドの代わりに、wget を使えば、連番ファイルのダウンロード。touch コマンドを使えば、連番ファイルの作成。etc... さて、10 個以上の連番ファイルを作る場合、0 パディングを加えておくと便利
上田さんが #危険シェル芸 で盛り上がっている。夏だし暑くてみんな頭がやられているのではないか。 【試さないで】危険シェル芸【違法(脱法)シェル芸を勧められたり、 身近な人が持っていたりしませんか?】 そういえば、私も去年暇なときに forkbombステッカーを作っていた。 iPhoneケースにぴったりのかわいいやつです。 大量に余っているので以下URLより個人情報を送ってくれたら、先着10名様ぐらいに3枚セットでさしあげます。 危険シェル芸ステッカーほしい (受付は終了しました) どこに貼ったのかあとで写真を送ってくれるとうれしいです。 # いただいた個人情報はステッカーの発送のみに使います。
3の倍数と3が付く数字の時だけ世界のナベアツになります。 ただのFizzBuzzです。Shellだとかなり簡単だったり。 世界のナベアツ by Shell 数え上げて、剰余算して、置換して。 seq 1 100 | gawk '{print $1%3==0?"おもろー!":$1}' | sed "s/.*3.*/おもろー!/g" 1 2 おもろー! 4 5 おもろー! 7 8 おもろー! 10 11 おもろー! おもろー! 14 おもろー! 16 17 おもろー! 19 20 おもろー! 22 おもろー! おもろー! 25 26 おもろー! 28 29 おもろー! おもろー! おもろー! おもろー! おもろー! おもろー! おもろー! おもろー! おもろー! おもろー! 40 41 おもろー! おもろー! 44 おもろー! 46 47 おもろー! 49 50 おもろー! 52 おもろー!
シェル芸 (- げい) とは、現代においてもっとも過激と目されるCLIワンライナー原理主義の一派。武田久美子を教祖とし、夏になると信者は女も男も老いも若きも貝がらビキニで海辺をホーミタイする危険な思想である。 起源[編集] シェル芸の発祥は古く、なつやすみの感想文や学部レポートの執筆時に文字数稼ぎをねらった学生たちが、「~と考えられるが~つまり~とはいえ~」と、順接・逆接の接続詞を多用して一文を長引かせたことに由来する。 このようなデキの悪い学生が大学に進学し、UNIX系OSを触らせられると「パイプでコマンドつないだりxargs使うとカッコよくね?」と厨二病を発症してしまい、そのまま研究室に居座ったりすることでさらに悪化するとシェル芸信者となる。 現在[編集] GUIを搭載したLinuxディストリビューションのような似非UNIXの普及により、シェル芸はいったん廃れたかに見えた。しかし、20
商人舎と商人ねっとのコラボ企画「CDオーディオセミナー『知識商人』対談シリーズ」。 業界のトップとの対談を音でお届けする好評シリーズに、 コンピュータリテラシー研究会の座長の當仲寛哲さんが登場しました。 本来は、知識商人対談ブログコーナーでご紹介すべきところですが、 何しろ、本研究会の座長の人柄がわかる話でもあり、情報システムをメーンに話が進みますので、 このコーナーで、じっくりと連載していきます。 情報システムとは何かが、実によくわかる対談です。<事務局> 知識商人 VOL.10 「情に報いる仕組みを作る」 ユニバーサル・シェル・プログラミング研究所 代表取締役 當仲 寛哲 氏 ****************************************************************** 結城義晴: 皆さん、こんにちは。商人舎の結城義晴です。 毎月みなさんにお送りし
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く