タグ

linuxに関するdshimのブックマーク (23)

  • ジャーナリングファイルシステムが保護する「情報」

    信頼性が高いとされるジャーナリングファイルシステムだが、ジャーナルによって何が保護されるのかを理解していないと、とんでもない落とし穴にはまってしまう。今回は、ジャーナリングファイルシステムの総論とそのほかの各種技術について解説する。(編集局) ジャーナリングファイルシステム Linuxではカーネル2.4以降、ext3、ReiserFS、JFS、XFSなど複数の「ジャーナリングファイルシステム」がカーネルに追加された。Linuxでジャーナリングファイルシステムが必要とされている背景には、Linuxがエンタープライズを志向するに伴ない、大容量記憶装置の利用によるデータの安全性、起動時のfsck時間短縮などの要求が高くなってきたことが挙げられる。 ジャーナリングファイルシステムとは? 「ジャーナリング」は、ジャーナル(またはログ)と呼ばれるデータを定期的に記録する技術で、もともとはデータベースで

    ジャーナリングファイルシステムが保護する「情報」
  • find でディレクトリに symlink が含まれるときはパスの末尾に / をつけるか、-L をつける - tkuchikiの日記

    $ tree -p /tmp/ /tmp/ ├── [lrwxrwxrwx] foobar -> /tmp/hoge └── [drwxr-xr-x] hoge ├── [-rw-r--r--] hogege └── [-rw-r--r--] hogehoge 2 directories, 2 filesというディレクトリ構成の時に、 $ find /tmp/hoge /tmp/hoge /tmp/hoge/hogege /tmp/hoge/hogehogeは、問題ないが、 $ find /tmp/foobar /tmp/foobarsymlink の先が出力されない。 パスの末尾に / をつけるか、-L をつければ、symlink の先が出力される。 LinuxMac で検証したが、どちらも同じ結果だったので、 この件に関しては、Linux と BSD で find の挙動とオプシ

    find でディレクトリに symlink が含まれるときはパスの末尾に / をつけるか、-L をつける - tkuchikiの日記
    dshim
    dshim 2014/04/08
  • はじめてのカーネル・ソース---目次:ITpro

    なかなかハードルが高く,多くの人が踏み出せないでいるカーネルのソース・コードの読解。連載では,今までカーネル・ソースなんて見たことがないという人に,読みこなすコツをお教えします。 カーネルのコンパイル方法については,関連記事「やってみると意外に簡単!? Linuxカーネル・コンパイル入門」をお読みください。 また,カーネル・パラメータの項目については,関連記事「「Linuxカーネルの設定パラメータ」」で公開しています。 第1回 どうしたら読めるようになるのか 第2回 C言語とライブラリの初歩 第3回 カーネル・ソース内のシステム・コールを確認する 第4回 カーネルが構造体を好むワケ 第5回 デバイス・ドライバとモジュール 第6回 構造体に「関数」を登録する 第7回 ネットワーク処理はモジュール処理と上下が逆 第8回 データに意味付けするキャスティング手法 第9回 機能拡張でよく使われる共

    はじめてのカーネル・ソース---目次:ITpro
  • 誰も読まないOSのソース・コード:ITpro

    まず,結論から言おう。 「エンジニアがOSのソース・コードを読めるようになると,活躍の場が一気に広がる」。そして,「コツさえ分かれば,OSのソース・コードはびっくりするほど簡単に読める」。 ここでいうOSとは,Linuxのカーネル(OSの“核”となるソフト)のことである。筆者が上の2点を強く感じたのは,つい最近の,ある人物とのやり取りがきっかけだった。 「カーネルのソースが読めると,たいそう儲かるってことが,分かってしもうたから」。「もうすぐ大学の仕事は定年や,でも定年後の収入の方が多いんとちゃうかな」---。 筆者の耳に,迫力ある関西弁が突き刺さった。声の主は1949年生まれの57歳。神戸情報大学院大学助教授の赤松徹氏その人である。 打ち合わせを兼ねた取材の後の会話だったので,メモは取っていない。赤松氏がはっきりとこの通りに発言したかどうかは覚えていないが,筆者の脳裏には,そのような発言

    誰も読まないOSのソース・コード:ITpro
  • 第6回 割り込み管理

    コンピュータにとって,プロセッサ内部での演算処理と同様に重要なのが入出力処理です。処理に必要なデータを入力したり,処理結果を出力できないようでは,演算処理ができても意味がありません。また,コンピュータに接続されているさまざまな周辺機器の制御も,入出力処理を通じて行われています。 この入出力処理において重要な役割を果たすのがプロセッサの「割り込み」機能です。今回は,この割り込みとはどのような機能なのか,またその割り込みをカーネルがどのように利用するのかを解説します。 割り込みとは プロセッサは,決められた命令を順番に実行していくように作られています。初期のコンピュータは,実行する命令を入力し,それをプロセッサに実行させ,その結果を受け取るという決められた流れ(バッチ処理)に沿って利用されていました。しかし,コンピュータの用途が多様化し,インタラクティブな動作が求められるようになると,このよう

    第6回 割り込み管理
  • ls のソースを読んでプログラマになりました - ablog

    タイトルは釣りですw*1 とあるテキストファイルを加工してCSVファイルを出力する Perl スクリプトがあり、ディレクトリ内のファイルをリストアップしてCSVファイルに出力しているのだが、なぜファイル名でソートされていないのか聞かれたので調べてみた。 その Perl スクリプトは File::DosGlob::glob でファイルリストを取得していたので、 yazekats% mkdir tmp yazekats% cd tmp yazekats% ls yazekats% touch 3 yazekats% touch 2 yazekats% touch 1 yazekats% ls 1 2 3 yazekats% perl -MFile::DosGlob -e 'map{print qq/$_\n/} File::DosGlob::glob(q/*/)'; 1 3 2 試してみると確

    ls のソースを読んでプログラマになりました - ablog
    dshim
    dshim 2014/03/09
  • 既存プロセスの標準出力と標準エラーを奪う - Qiita

    #!/bin/bash # 既存プロセスの標準出力と標準エラーを奪う https://qiita.com/kawaz/items/96af6fa59fdf999b94bd # ターゲットのPID pid=$1 [[ -d /proc/$1/fd ]] || exit 1 # 出力先はttyやファイルを指定 out="$2" # 出力先の指定がない場合は現在のttyを出力先にする if [[ -z $out ]]; then # プロセスに紐付いたttyを取得する https://qiita.com/kawaz/items/bd33fe1e29876939dddb function search_tty() { local pid=${1:-$$} tty="" while [[ 1 -lt $pid ]]; do [[ -d /proc/$pid/fd ]] || break tty=$(

    既存プロセスの標準出力と標準エラーを奪う - Qiita
  • クラウド基盤構築サポートページ - 講義資料

    講義資料

  • @IT:Linux起動の仕組みを理解しよう[rcスクリプト編]

    今回は、前回紹介し切れなかったrcスクリプトについて解説する。rcスクリプトも、理屈を理解してしまえば容易に管理できる。管理方法のついでに、rcスクリプトの書き方もマスターしてしまおう。 前回のLinux起動の仕組みを理解しよう[init/inittab編]では、カーネルがinitプロセスを起動して、さまざまな処理を行うことを説明しました。今回は、各種サービスの起動を行うrcスクリプトについて見ていきましょう。 rcスクリプトの管理の仕組み rcスクリプトは、Windowsのautoexec.batに相当すると考えればいいでしょう。もちろん、rcスクリプトとautoexec.batでは異なる点があります。rcスクリプトは、対応する作業ごとに1つずつ、複数のファイルで構成されています。また、ランレベルごとに実行するrcスクリプトを変えることができます。 rcスクリプトの実体は、/etc/in

    @IT:Linux起動の仕組みを理解しよう[rcスクリプト編]
    dshim
    dshim 2014/01/29
  • Linux の ext4 ファイルシステムで間違って上書きしたファイルを復旧させた - 鈴木うどんの横須賀おもしろ生活

    結論 ext4magic 最高!!!!111 やったこと % ext4magic “デバイス名に” -r -a “このunixtimeから” -b “このunixtimeまで存在していた” -f “このファイル名のファイルを復旧する” 実例 /dev/md0 上の昨日の20:00から20:30の間まで存在していた udonchan/backup.tar を復旧させたい % ext4magic /dev/md0 -r -a $(date -d "-1day 20:00 +%s") -b $(date -d “-1day 20:30 +%s) -f "udonchan/backup.tar" どうしてこうなった 年末なので OSX をクリーンインストールしようとして ~ をバックアップしたが間違って上書きして消した。 具体的に? ~ をサーバ上にバックアップするぜ % tar cf -C /U

    Linux の ext4 ファイルシステムで間違って上書きしたファイルを復旧させた - 鈴木うどんの横須賀おもしろ生活
    dshim
    dshim 2013/12/29
    オペミスコワイ。しかし便利なツールもあるんだな。
  • Docker 虎の巻

    docker_cheat.md Docker 虎の巻 Fork from Docker cheat sheet 実際にコマンドを試したい場合は、すぐにDockerを試したい人のための基礎コマンドを参照 何故Dockerを使うべきか Why Should I Care (For Developers) "Dockerが面白いのはシンプルな環境に隔離性と再現性をもたらしてくれることだ.ランタイムの環境を一度作れば、パッケージにして別のマシンでも再利用することできる.さらに,すべてはホスト内の隔離された環境で行われる(VMのように).最も素晴らしい点は,シンプルかつ高速であることだ." Dockerで使われている技術 仮想環境構築に docker を使う LXC "Xen とか VirtualBOX みたいにホスト内に仮想マシンを立ち上げるんじゃなくて、ホスト内の隔離された環境で仮想マシンを動か

    Docker 虎の巻
  • Pacemaker-1.0 インストール方法 CentOS 5編 « Linux-HA Japan

    CentOS5.5 x86_64 にPacemakerをインストールする方法は、主に以下の4つがあります。 ここでは、下記の1, 2 の方法について記述します。 yum を使ってネットワークインストール Pacemaker家(clusterlabs) の yumのリポジトリを使用 インターネット接続必須 最新の安定バージョンをいち早く使ってみたい人向け (?) Linux-HA Japan 提供のローカルリポジトリ + yum を使ってインストール Linux-HA Japan オリジナルパッケージも含まれる インターネット接続は必須ではない Linux HA Japan 推奨バイナリ (^ ^) rpm を手動でインストール 上記1 ,2 で公開されているrpmを個別にダウンロードしてインストール ちょっと手間がかかる ソースからインストール かなり手間がかかるけど、バイナリが提供され

    Pacemaker-1.0 インストール方法 CentOS 5編 « Linux-HA Japan
  • コンテナ型仮想化「Docker 0.7」リリース。主要Linuxディストリビューション全対応、ストレージドライバ同梱、コンテナ命名も可能に

    コンテナ型仮想化「Docker 0.7」リリース。主要Linuxディストリビューション全対応、ストレージドライバ同梱、コンテナ命名も可能に コンテナ型の仮想化は、ハイパーバイザによってハードウェアを仮想化する従来の方法とは異なり、OSの上に分離された複数のユーザー空間を作り出すことで、物理サーバの上に複数の仮想サーバを実現します。 ハイパーバイザ型に比べてコンテナ型は非常に軽量で、それがいまコンテナ型仮想化が注目される最大の理由になっています。一方、ハイパーバイザ型では仮想サーバごとに異なるOSが選べるのに対して、コンテナ型はその仕組み上、一種類のOSに限定されるという制限があります。 Dockerはコンテナ型仮想化ソフトウェアとしてもっとも注目度の高いソフトウェアといえるでしょう。バージョン0.7では主要なディストリビューションすべてで利用可能になったため、これからの普及に大きなはずみが

    コンテナ型仮想化「Docker 0.7」リリース。主要Linuxディストリビューション全対応、ストレージドライバ同梱、コンテナ命名も可能に
  • Linux標準の仮想化技術「KVM」の仕組み

    アナウンス後わずか2カ月でLinux Kernelにマージされたことで一躍注目を浴びることになった仮想化技術「KVM」。しかし、その具体的な仕組みや使用方法となると、意外と知られていないのではないでしょうか。この連載ではそんなKVMについて紹介します(編集部) KVMは、Linux Kernel自体をハイパーバイザとする仕組みで、正式名称を「Kernel-based Virtual Machine」といいます。KVMは現時点では、Intel VT-xやAMD-VといったCPUの仮想化支援機能を必要とし、完全仮想化によりOSの仮想化環境を提供します。 この記事では、「KVMの名前は聞いたことはあるが詳しくは知らない」という方、「興味はあるけど使い方がよく分からない」という方を想定し、全3回でKVMの概要と基的な使い方、今後の課題について紹介したいと思います。 OS仮想化技術のおさらい サー

    Linux標準の仮想化技術「KVM」の仕組み
  • 第3回 プロセス・スケジューリング

    Linuxは複数のプロセスを同時に実行できるマルチタスクOSです。第2回目で紹介したように,プログラムはプロセスという単位で管理されており,それぞれが独立したメモリー空間を持つことで複数のプロセスが干渉しないように動作できます。 しかし,通常のパソコンにはプロセッサが1つしか搭載されていませんので,同時に1つのプログラムしか実行できないはずです*1。なぜ,Linuxではマルチタスクを実現できるのでしょうか。その答えはカーネルにあります。 今回は,カーネルがどのようにマルチタスクを実現しているかを解説します。 時分割でマルチタスクを実現 最初にプロセッサがプログラムをどのように実行するかを見てみましょう。 プロセッサの基構造は至って単純です。プロセッサは「Program Counter(PC)」と呼ばれるレジスタが指し示すメモリー・アドレスから命令を読み込んで実行します。実行後は再度PC

    第3回 プロセス・スケジューリング
  • プロセス管理の初歩テクニック - Y's note

    Index 一言 Terminalログアウト後もプロセスを残す プロセスの2重起動防止 簡単に不要なプロセスをkillする tmuxの薦め 一言 はてなって不思議なコミュニティーで具体的な実装や調査分析よりも便利なコマンドとかを紹介するネタが何故か重宝されるようなので、良く使うプロセス管理系コマンドの初歩テクニックを書いてみます。( コマンドの学習をより必要とする人が多く一般的な話だからでしょうか? ) Terminalログアウト後もプロセスを残す 単一の処理で長時間かかってしまうようなプログラムを実行後にログアウトするとプロセスが消えて悲惨な目に遭います。tmuxやscreenを使って再起動可能な設定をしている人は特に気にする必要はありませんが、これらを使っていない場合はnohupでログアウト後もプロセスを残しましょう。 $ vi nohuptest.sh #!/bin/sh sleep

    プロセス管理の初歩テクニック - Y's note
    dshim
    dshim 2013/09/07
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • Linuxのbonding(802.3ad)で発生したトラフィックの偏りをなおした話 - 元RX-7乗りの適当な日々

    はじめに とある環境の話。internalのLinuxサーバでbonding(ボンディング)を組んでいました。modeは4。802.3ad(LACP)準拠のリンクアグリケーションなモードです。 ちなみに、bondingとは・・・ ちなみに、"bonding"とは、ネットワークインターフェースを冗長化(または負荷分散)する方法で、複数のNICを束ねて1に見せることができます。チーミング(teaming)と呼ばれたりもしますね。 で、Linuxではbondingにもいくつかモードがあって、複数のポリシーの中から選択することができます。 balance-rr 又は 0 - 耐障害性とロードバランシングのためラウンドロビンポリシーを設定します。利用可能な第 1 のインターフェースからそれぞれのボンディングされたスレーブインターフェースで送受信が順次行われます。 active-backup 又は

    Linuxのbonding(802.3ad)で発生したトラフィックの偏りをなおした話 - 元RX-7乗りの適当な日々
  • デーモンの起動・終了にはserviceコマンドを利用しよう

    斎藤です。こんにちは。 今日は、デーモンの起動・終了に際してはserviceコマンドを使った方がいいよ、というお話です。 ※CentOS 6.4 (x86_64) でテストしています。尚、特記がある所を除きます。 デーモンの起動・終了には大きく2手 Linux、特にRedHat, CentOS, Fedora, Ubuntu[1]などでは、デーモンの起動・終了の制御の際に、大きく分けて次の2つの方法を用いる事ができます。 "/etc/init.d/"配下のスクリプト(以下、スクリプト)を直接実行する "service"コマンドを実行する 一見、同じ事をやっているように思えるのですが、実は違う部分があります。それは、起動スクリプトが扱う環境変数が違うのです。次の節で、検証してみます。 扱う環境変数が違う スクリプトを直接実行する場合は、実行時の際の環境変数をそのまま利用します。一方、serv

    dshim
    dshim 2013/06/26
    こんな違いがあることは知らなかったので勉強になりました。
  • iptablesを設定して日本のIPだけを許可する | DevelopersIO

    shellを作ってみる Webサーバを立ち上げる機会が増えてきたので、事前にできる限りの対策はやっておこうと思い、国単位でのアクセス制御をやってみたので自分用のメモとして残します。 世界の国別IPv4アドレス割り当てリストが公開されていますのでその情報を活用させてもらうことにします。 動作させた環境はAWS Amazon Linuxです。 ※あくまでも以下はサンプルのシェルなので、適用する場合は自己責任でお願いします。自身すら入れなくなる可能性もあるのでご注意を。 #!/bin/sh IPLIST=cidr.txt # 初期化をする iptables -F # Flush iptables -X # Reset #iptables -P INPUT DROP # 受信はすべて破棄 iptables -P OUTPUT ACCEPT # 送信はすべて許可 iptables -P FORWAR