タグ

linuxとUNIXに関するcrafのブックマーク (23)

  • Unixデーモンの仕組み

    Home Subscribe Unixデーモンの仕組み 12 March 2015 おはこんばんちは!! 尾藤 a.k.a. BTO です。 みなさん、Unixデーモンよく使ってますよね。 Webエンジニアなら、Webサーバ、メールサーバ、DBサーバ、cronなどがよく使われるのではないでしょうか。 24時間365日黙々と働き続けるUnixデーモン達。 身近な存在だと思いますが、実はどういう仕組みで動いているのかご存じない方も多いのではないでしょうか。 先日、オトバンクでUnixデーモンの仕組みについて勉強会をやったので、その内容をまとめます。 デーモンとは では、デーモンとはいったい何なのでしょうか。 Unixライクシステムにおいて、バックグランドで動作して様々な処理を実行してくれるプロセスがデーモンです。 デーモンには明確な定義はありませんが、だいたい次のような条件を満たすプロセスが

    Unixデーモンの仕組み
  • Just another Ruby porter, 2014-8-a

  • 読み取り権限がなく実行権限だけのファイルが実行できるのはなぜ? - カーネルのソースを読む - - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    きっかけはこのツイート。 基礎的なことなんだろうけど理解できてないこと。 読み取り権限のない実行権限だけのファイルってどういう扱いになるんだろう。— ゑぬぽい改@電探が出(ん)たん? (@NPoi) March 27, 2014 実際にやってみるとわかるけど、実行権限だけついてるファイルは実行可能です。でも、「読み込めないのに実行できる」というのは直感に反するような気もしますね。だって、実行するためにはプログラムをメモリに読み込む必要がありますから!ではなぜ実行権限だけのファイルが実行できるのか、その仕組みを解説します。 実行とはなにか、どういう仕組みなのか Linux において実行とは「forkしてexecする」です(そのへんの詳しい話は プロセスさん を読もう!)。 fork も exec もシステムコール(正確には execve がシステムコールで exec はそのフロントエンドだけ

    読み取り権限がなく実行権限だけのファイルが実行できるのはなぜ? - カーネルのソースを読む - - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
  • faketimeで任意の日時でコマンド実行 - jarp,

    ■ sshでSendEnvをキャンセルさせるには sshするとLANG等が勝手に引き継がれるのは、Ubuntuだと/etc/ssh/ssh_configに SendEnv LANG LC_* と書いてあるからだとわかったが、これをやめる方法が見つからない。 ぐぐってみるとなんとほんとにないそうだ。 Bug 1285 – provide fallback options /etc/ssh/ssh_config 2007年に報告されている。最後の2013年11月には Damien Miller 2013-11-16 02:03:24 EST Created attachment 2375 [details] Add UnSendEnv option This adds an UnSendEnv option that allows cancelling SendEnv. It supports

  • .ssh/configの書き方 - ぷろぐらまはっくす MkⅡ

    sshを使ってると接続するサーバ毎に、ポートが違ったり秘密鍵が違ったりで引数を切り替えることがよくある。 接続するサーバ毎に指定する引数は決まっているので、よくシェルスクリプトやエイリアスで対処してきたが、.ssh/configを用意すればssh側で面倒みてくれるようだ。(scpsftpでも可) まさに灯台もと暗し、こりゃ使わない手はないね。 Hostセクション .ssh/configは、接続先を表す複数のHostセクションからなり、その中に細かな設定を記述していく。 Host server1 HostName 192.168.11.101 Port 2222 User nauthiz IdentityFile ~/.ssh/server1/id_rsa Host server2 HostName 192.168.11.102 Port 2222 User nauthiz Identit

    .ssh/configの書き方 - ぷろぐらまはっくす MkⅡ
  • Nippon Kaisho システムツール [ CRONTAB設定ヘルパー ]

    ■ What's This? UNIXのCRONTABの設定ヘルパーです。 crontabとはUNIXのバックグラウンドで自動処理を行う「CRON」デーモンへの指示です。もっと簡単にいいますと「毎日*時*分に/home/cron.shを実行せよ」といったもの。 ユーザーレベルで設定ができるUNIXのシステム管理必携ツールです。 solarisやXwindow系のマウスユーザーの方はGUIツールを使われていることでしょうが、コマンドパンチャー(?)にとっては便利なツールかと思われます。 crontabの設定を覚えるのが面倒な方以外にも、crontabを勉強されている方は設定方法の参考にお使いください。(とりあえずの答えを出せます) 更に詳細設定についてはJFなどをご覧ください。

  • Just another Ruby porter, 2010-2-c

    ■ [Tips] Numerically sorted human readable disk usage なかなかいいんだけど、これだと空白を含むディレクトリがあるとだめ。 % du -x --max-depth=1 | sort -n | cut -f2- | xargs -d '\n' du -hxs cutで2番目以降のフィールドを表示し、 xargsには明示的に改行をデリミタに指定すればよさげ。 そもそもdu -hの結果でsortできればこんな面倒なことをしなくていいわけで、 こんなこともあろうかとGNU coreutilsのsortにはちゃんと-hオプションがあったりする。 -h, --human-numeric-sort compare human readable numbers (e.g., 2K 1G) ruby-1.9.1-p378で試すとこんな感じ。ってtkでかすぎ

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • [Tips] More precise BASH debugging - jarp

    ■ [Fedora] NetworkManagerでdnsmasqの設定 DNS serversにカンマ区切りでサーバを並べられるので、127.0.0.1を先頭に置く。 /etc/resolv.confを直接いじらない。 この設定は固定IPのときにしか使えない。DHCPだとDNS serverも配っちゃうので。 そんときは安易ではあるが、NetworkManagerをアンインストールするのが簡単。 まあ、なくても困るようなもんでもないしねえ。 ■ [CMS] nanoc3でkramdownを使う lib/kd.rb(名前は適当)に Class.new(Nanoc3::Filter) do identifier :kramdown def run(content, params={}) require 'kramdown' Kramdown::Document.new(content).to

  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    IDEA * IDEA
  • 安全なシグナルハンドラを実装するには ――C/C++セキュアコーディング入門(4)

    UNIXなどPOSIX準拠のOSでは、割り込みや例外を抽象化した「シグナル」と呼ばれる仕組みを用いてプロセスに(非)同期イベントが通知されますが、シグナルハンドラで行える処理には制約があり、これを無視したコードを書くと脆弱性につながる恐れがあります。今回はシグナルハンドラの制約に関するルールを見てみましょう。 シグナルハンドラの制約 UNIXなどPOSIX準拠のOSでは、割り込みや例外を抽象化した「シグナル」と呼ばれる仕組みを用いてプロセスに(非)同期イベントが通知されます。ユーザが[Ctrl]-[C]キーを押してプログラムを中断しようとしたり(SIGINT)、整数オーバーフローが発生したり(SIGFPE)すると、それらのイベントに対応するシグナルがカーネルからプロセスに対して通知されるのです。プログラマは、これらのシグナルを受信した時に特定の動作を行わせる「シグナルハンドラ」を書くことが

    安全なシグナルハンドラを実装するには ――C/C++セキュアコーディング入門(4)
  • セキュアプログラミング for Linux and Unix HOWTO

    この文書は、Linux および Unix システム上で安全なプログラムを書く際に必要と なる設計や実装について、そのガイドラインを提供します。 遠隔のデータを見るためのビューアーや Web アプリケーション(CGI スクリプト を含む)、ネットワーク・サーバ、setuid や setgid してあるプログラムが対象です。 C や C++JavaPerlPHPPython、TCL、Ada95 個別のガイドラインも掲載します。 Table of Contents1. はじめに2. 背景2.1. Unix や Linux、オープンソースもしくは フリーソフトウェアについて2.2. セキュリティの原則2.3. なぜプログラマは危ないコードを書いてしまうのか2.4. オープンソースはセキュリティに効果があるのか2.5. 安全なプログラムの種類2.6. 疑い深く、こだわりが強いことに価値がある

  • GNU screen いろいろまとめ。 - naoyaのはてなダイアリー:

    先日人力検索で GNU screen の設定TIPSについて質問してみたところ、かなーり役立つ設定とかをたくさん教えてもらうことができました。みなさん感謝。 そんで、教えていただいた通りにカスタマイズした結果、こんな感じのスクリーンショットが撮れました。MacOSX のターミナルです。 おかげさまでかなり便利になって作業効率が上がったと思います。いろいろ教えてもらったお礼とまではいきませんが、やった設定とかをはまりどころとかも交えて紹介してみます。名付けてリバースNDOメソッド。ちなみに、知ってる人にはごく当然のことが当たり前のように書いてるので、あんまり役に立たないかもしれません。 hardstatus alwayslastline で最終行にウィンドウ一覧を表示 これは今回の質問とは直接関係ないのですが、やるとやらないとでかなり使い勝手が違うので。 hardstatus alwaysl

  • rsync - オプションなどの基礎

    1 Mar 1999 NAMErsync - rcp よりも速くて、柔軟性に富んでいます SYNOPSIS rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST rsync [OPTION]... [USER@]HOST:SRC DEST rsync [OPTION]... SRC [SRC]... DEST rsync [OPTION]... [USER@]HOST::SRC [DEST] rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST] 説明 rsync は rcp とほとんど同じ方法で動くプログラムですが、より多くの オプションを持っています。目的のファイルが既に存在する場合に、 rs

  • hexdump 的なもの - odz buffer

    なんとなく、知っているものをだらだらと。しかし、どいつもこいつも endian を指定できないのが悲しい。 hexdump まぁ、正直にいうと使いにくい。1バイト単位で16進出力なんてのがやりたければフォーマット文字列を指定しないとできないのだが、このフォーマット指定文字列が難しい。 例えば、16バイトごとにアドレスを出力しながら、1バイト単位で16進出力、なんかだとこうなる。 % hexdump -e '"%07_ax" 16/1 " %02x" "\n"'「"%07_ax"」 でアドレスを7桁16進で出力、「16/1 " %02x"」というのは1バイトずつ読み込んで、" %02x" で出力を16回繰り返し、「"\n"」は改行の出力。まぁ、分かりにくい。Ruby で書くとこんな感じ。 addr = 0 until ARGF.eof? printf '%07x', addr 16.time

    hexdump 的なもの - odz buffer
    craf
    craf 2009/10/23
    hexdump難しい…
  • ドットファイルをsubversionで管理する - builder by ZDNet Japan

    私のような人であれば、さまざまなコマンドラインプログラムをカスタマイズした設定ファイルを持っているだろうと思う。~/.zshrcや~/.vimrcなどの設定ファイルは、「ドットファイル」と呼ばれる。2つ以上のコンピュータを使っている人は、おそらくその多くでこれらのドットファイルを再利用していることだろう。残念ながら、このことはドットファイルの管理という新たな問題を生み出す可能性があり、それらのファイルを異なるシステム間で最新のものに維持するのは難しい問題になり得る。特に、大量のコンピュータを使っている場合はそうだろう。 1つの解決法は、これらのファイルの管理に、subversion、CVS、gitなどのバージョンコントロールの仕組みを使うことだ。この問題は、これらのファイルを保管するsubversionのレポジトリを作ることで簡単に解決できる。たとえば、他のシステムから(たとえばsshなど

  • freenx上で_が入力できない - bookbridge's Blog

    後輩が僕の管理してるlinuxにfreenxで入ってシミュレーションしてるんだけど、_が入力できないと困ってたので解決。以下メモ。興味ない人にはまったく興味ない話題なので、はてな記法の続きを読む、を初めて使った。 デフォルトでは、日語キーボードで正しく文字を入力することができない。日語キーボードを利用するには、キーボードの設定を行う必要がある。 NX Clientの「Config」ボタンを押し、「Advance」タブをクリック、keyboard欄のUse other layoutでJapaneseを選択。 JP106のキーボードでは、backslash、underscoreが正しく入力できないことがある。FreeNX上のコンソールから次のように入力すれば、入力可能となる。 $ xmodmap -e 'keycode 123 = yen underscore' ログインする都度上記のコマ

    freenx上で_が入力できない - bookbridge's Blog
  • リモートサーバに接続できない場合の telnet による原因切り分け方法 - kazuhoのメモ置き場

    1) telnet host port して Escape character is ... と出た後、すぐ (あるいは少しして) 接続が切れる → 接続後 fork() 等で落ちている → サーバのメモリ不足やプロセスの無限増殖を疑う 2) telnet host port して Escape character is ... と出るが、その後何も起こらない → SYN_ACK が返ってきている → カーネルは生きている。ユーザーランドの負荷が極めて高い可能性 3) telnet host port して、すぐ connection refused と出る → RST が返ってきている → port が閉じている (サーバプロセスが落ちた?) か、または accept(2) していない 4) telnet host port して、しばらくたってから connectin refused

    リモートサーバに接続できない場合の telnet による原因切り分け方法 - kazuhoのメモ置き場
  • Manpage of EXPECT

    Section: User Commands (1) Updated: 29 December 1994 Index JM Home Page roff page 名前 expect - 対話的なプログラムとのやりとりを自動化するプログラム, バージョン 5 書式 expect [ -dDinN ] [ -c cmds ] [ -[f|b] ] cmdfile ] [ args ] イントロダクション Expect は、スクリプトの指示に従って、対話的なプログラムと"会話"するプログラムである。 以下のスクリプトに示すように、 Expect には、対話プログラムからの期待されうる入力とそれに対する正しい応答を 教えておく。インタプリタは分岐処理と高度な制御構造を提供し、 対話プログラムへの指示を行なう。 さらに、必要な時にスクリプトから制御を奪って直接人間が指示を行ない、 その後、制御をス

  • CodeZine:signalについて(後篇)(signal, Linux, Unix, シグナル)

    はじめに シグナルについての解説最終回です。今回はシグナルを扱う上での注意点や、よりよい実装方法の提案、シグナルの未来等について説明します。過去の記事signalについて(前篇)signalについて(中篇) 5. 実装上の注意点 前回まで説明してきたとおり、シグナルは気軽に使うことができる便利なプロセス間通信です。しかしシグナルには、やってはいけないことや気をつけるべき点が多く存在します。以下、代表的な注意点を挙げます。5.1 最適化問題 volatileはそれほど使われない宣言修飾子ですが、これは最適化を制御する修飾子です。なぜこの修飾子がシグナルと関係あるのかについてですが、先にソースコードを示します。 /* 1. gcc -g -W -Wall signal_test_volatile.c -o signal_test_volatile 2. gcc -g -W -Wall sign