ドットインストール代表のライフハックブログ
しばらく前から、コマンドの終了ステータスをプロンプトの色に反映させるようにしている。 終了ステータスとは C言語なら int main(int argc, char* argv[]) { ... return 0; } この return している 0 が終了ステータス。この整数値の下位 8bit がプロセスの終了時に親 (そのプロセスを起動したプロセス) にわたる。 終了ステータスの指定方法はいろいろある。C言語の場合 main 関数の戻り値以外にも exit 関数の引数でも指定できる。Ruby, Perl の場合、そもそも main 関数は無くて exit 関数に引数を与える方法だけがつかえる。 この値はシェル上で $? で参照できる。 % perl -e 'exit(0xdead)'; echo $? 173 % 慣例として、正常終了のときは 0 を返すことになっている。 % ls
開発の作業をしているときは、複数のホストのサーバーを行き来していろいろとオペレーションをするようなことがあると思います。 そんなときに1つのサーバーから作業できるよう、ssh経由でリモートのサーバーをマウントし、Localのファイルシステムのように見せることができるsshfsを紹介したいと思います。 sshfsのインストール Debian/Ubuntuならaptで簡単インストールできます。なお、fuseグループに入っている必要があるので、その設定まで実施します。なお、ユーザー名はwadapで実施します。 $ sudo apt-get install sshfs $ sudo adduser fuse wadap $ newgrp fuse以上、簡単ですね。 早速リモートホストをマウント リモートホストをマウントするのは簡単です。マウントポイントをつくって、sshfsコマンドを実行するだけ。
タイトルの通りですが、xargsコマンドの便利さを紹介する記事を書いてみました。xargsは私が大好きなコマンドの一つで、標準入力から渡されたファイル名などを引数とみなして、別のコマンドの引数として起動するというものです。 例えばfindで見つけたファイルを全部削除したい場合、xargsなしでも下記のように書くことができます。
Unix/Linux系OSの場合で、負荷監視のツールといえばtopが有名ですが、apacheの詳細までは監視することができません。 とくに、ある程度のアクセス数のあるWebサイトを運用したことのある方ならわかると思いますが、攻撃と思われるような負荷に出くわすことはあると思います。 そんなときに、簡単にapacheの状況を調べることができるのがapachetopです。 どんなときに使う? apachetopということで、使用するのはWebServerです。アクセスが多くでサーバーが高負荷になっているなーとある程度自分なりに判断できたときに使います。 Debian/Ubuntuであればインストールは簡単。 # sudo apt-get update # sudo apt-get install apachetop 簡単に使ってみよう 使用方法も簡単です。 apachetopはapacheのアク
2007年09月20日13:30 カテゴリTips tips - 1ディレクトリにファイル大杉の場合の削除法 これ、以前にも書いたのですがここでおさらい。 subtech - PBD - 1ディレクトリにン千万ファイルあるときの削除方法 どうやるのが一番良いんだろ。404 Blog Not Found:勝手に添削 - find(1)より抜粋 findが-deleteをサポートしている場合 % find dir -type f -delete そうでない場合 % find dir -type f | perl -nle unlink 私がこれらを利用しているのは、SPAMの処理の時。Junkフォルダーにまとめたそれらを、bsfilterに食わせた後、上記にて削除。ファイル数十万オーダーでもOK。 あと、1ディレクトリーにファイルを多数押し込んだときに、ファイルシステムがどれだけ遅くなるかはフ
inetd や xinetd (以下 inetd) はインターネットサービスをデーモン化するのに共通している処理を担い、ほとんどの時間をアイドル状態で過ごすその手のサービスに必要なリソースを節約する役割を果たします。 inetd のひとつ面白いところは、inetd でサービス化したいプログラムの標準入力/標準出力がクライアントソケットの入出力に接続されるところです。例えば daytime 相当のサービスを自分で作ろうと思った場合 #!/usr/local/bin/perl # daytime.pl use strict; use warnings; use DateTime; use IO::Handle; STDOUT->autoflush(1); STDOUT->printf( "%s\n", DateTime->now(time_zone => 'Asia/Tokyo') ); と標
先日とあるサイトで知った、UNIX系OS で動く screen なるツール。kterm とか teraterm 等の端末1つで、複数端末での作業をエミュレートするとかなんとか・・・って使ってみてびっくり、これすげー便利!乱暴に言えばタブブラウザの terminal 版って感じでしょうか。ざーっと man を読んだ上で、幾つか web からも知識を仕入れたのでここにメモっておきます(いうても使いそうな基礎操作のみ)。 screen の魅力 複数の(仮想)端末を同時に開いて作業する事ができる 仮想端末が開かれた状態を保ったまま端末ログアウト 〜 後日ログイン後、screen を呼び出す事によって前回の状態を復帰させることができる(回線が強制切断しちゃった際も復帰可能) 1端末の画面を上下 n 分割させる事ができる 2人で同じ screen プロセスに接続する事で shell の同時操作ができる
後輩が cat README | tr ' ' '\n' | sort | uniq -c | sort -nr | head てなテクニックを見て、びっくりしたみたいな話をしていたのだが、こういうパイプラインを利用するテクニックを学んでいないのは色々損な気がする。 ていうか、サーバで丸一日以上かかるような処理を実行するのもしょっちゅうなのに、GNU screen も nohup も知らないってのはいろいろ支障があるような気もするのだが、だれも教えないものかなぁ。 ということで、bash or zsh のちょっとしたテクニックとか*1。リダイレクトとかパイプラインは略。 連続実行 単純に連続実行。 % foo; barfoo が正常終了したときだけ bar を実行 % foo && barfoo が正常終了しなかったときだけ bar を実行 % foo || bar&&、||は本来は論理演
最近、会社でシェルの操作方法について教えているのだが、 pgrep / pkill / skill / pidof といった 便利なプロセス操作系コマンドを知らない人が実に多い。 プロセスを殺すというのは、よくある作業なので 今回はコレについて書いてみる。 たとえば、これらのコマンドを知らない人が、 指定した名前のプロセスを kill する手順はだいたい 以下のようなものになることだろう。 $ ps aux | grep プロセス名 | grep -v 'grep' # コマンドの出力結果から pid を目で確認 12345 ... .. hoge .. .. $ kill 12345 この作業は非常に面倒で退屈だ。 もし殺さなければならないプロセスがたくさんあったときは どうするのだろうか。 おまけに、grep コマンド自身が候補に含まれてしまう事があるのだが、 grep -v grep
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く