はてなブックマーク

  • はてなブックマークって?
  • アプリ・拡張の紹介
  • ユーザー登録
  • ログイン
  • Hatena

はてなブックマーク

トップへ戻る

  • 総合
    • 人気
    • 新着
    • 国内
    • 国際
    • 経済・金融
    • IT
    • 社会
    • 文化
    • 事件・事故
    • はてなブログ(総合)
  • 一般
    • 人気
    • 新着
    • 今日の出来事
    • 生活
    • グルメ
    • 新型コロナウイルス
    • 今後の「働き方」
    • 夏の風物詩
    • ビジネス・経営
    • 雑学
    • 将棋・囲碁
  • 世の中
    • 人気
    • 新着
    • 新型コロナウイルス
    • 働き方
    • 生き方
    • 地域
    • 医療・ヘルス
    • 教育
    • 恋愛
    • はてな匿名ダイアリー
  • 政治と経済
    • 人気
    • 新着
    • 政治
    • 経済・金融
    • 企業
    • 仕事・就職
    • マーケット
    • はてなブログ(政治と経済)
  • 暮らし
    • 人気
    • 新着
    • カルチャー・ライフスタイル
    • ファッション
    • 運動・エクササイズ
    • 結婚・子育て
    • 住まい
    • グルメ
    • お金
    • はてなブログ(暮らし)
    • 掃除・整理整頓
    • 雑貨
    • 買ってよかったもの
    • 旅行
    • 趣味
  • 学び
    • 人気
    • 新着
    • 人文科学
    • 社会科学
    • 自然科学
    • 英語
    • ビジネス・経営
    • デザイン
    • 法律
  • テクノロジー
    • 人気
    • 新着
    • IT
    • セキュリティ技術
    • はてなブログ(テクノロジー)
    • AI・機械学習
    • プログラミング
    • エンジニア
  • おもしろ
    • 人気
    • 新着
    • まとめ
    • ネタ
    • おもしろ
    • これはすごい
    • かわいい
    • 雑学
  • エンタメ
    • 人気
    • 新着
    • スポーツ
    • 映画
    • 音楽
    • アイドル
    • 芸能
    • サッカー
    • 将棋・囲碁
  • アニメとゲーム
    • 人気
    • 新着
    • マンガ
    • Webマンガ
    • ゲーム
    • 任天堂
    • PlayStation
    • アニメ
    • バーチャルYouTuber
    • オタクカルチャー
  • おすすめ

    カレーが食べたい

『harasou.jp』

  • 人気
  • 新着
  • すべて
  • 実行ファイル一つだけの Docker イメージを作る

    3 users

    harasou.jp

    「Go で書かれた実行ファイルを一つだけいれた Dockerイメージを作る」って話が こちらのサイト に載っていて、なるほどなぁと思ったので試して見た。 まっさらな状態から Docker イメージを作る つまり、究極的にはプロセスの動作に必要なファイル一式がシングルバイナリにまとめられて いれば、そのファイルだけあれば良いことになる。 スタティックリンクされたバイナリであれば、ルートファイルシステムって、いらんのか…。 Dcckerイメージの作り方 Dockerfile は、ベースとして利用するイメージを FROM で指定するが、FROM scratch と 指定すると何もない状態をベースにできる。あとは、実行ファイルをひとつだけ ADD して あげれば「実行ファイル一つだけの Docker イメージ」ができあがり。 Dockerfile FROM scratch ADD http-fil

    • テクノロジー
    • 2019/01/02 19:29
    • cat するたびに内容が変わるファイル?を作った

      340 users

      harasou.jp

      こんな感じ。 cat で連続して nowファイルの内容を表示している。ファイルを変更しているわけではないが、 表示するたびに内容が変わる。 # cat now 2018-12-27 00:21:20 # cat now 2018-12-27 00:21:21 # cat now 2018-12-27 00:21:23 Fuse-BindEx どういう仕掛けかというと、今回作成した bindex ファイルシステムを経由して、 上記ファイルにアクセスしているため。この bindex というファイルシステムは、 「実行ファイルが read されたら、そのファイルを execute した際の出力を内容として返す」 という動作をする。上記nowファイルの本当の内容はこちら。 #!/bin/bash date "+%F %T" 今回の場合、bindex 経由で cat (read) するたびに、dat

      • テクノロジー
      • 2019/01/02 13:06
      • linux
      • filesystem
      • bash
      • あとで読む
      • fuse
      • 技術
      • db
      • nginx
      • shell
      • webdev
      • 古い CentOS の Docker イメージを作成する

        42 users

        harasou.jp

        仕事で CentOS6.4 の Docker イメージが欲しかったのだが、Officialには 6.6 までしかなかった。 せっかくなので、iso から core グループのみインストールした Docker イメージを作成してみた。 Official のイメージ Official の場合、CentOS 6.10 だと以下のような Dockerfile になっていて、ADD している centos-6-docker.tar.xz は、 kickstart で構築した VM から作成している模様。 FROM scratch ADD centos-6-docker.tar.xz / LABEL org.label-schema.schema-version="1.0" \ org.label-schema.name="CentOS Base Image" \ org.label-schema.v

        • テクノロジー
        • 2018/12/31 15:37
        • docker
        • CentOS
        • あとで読む
        • dev
        • cgroup の cpu.shares を検証した

          4 users

          harasou.jp

          cgroup には複数のサブシステム(controller)があるが、その中の cpu.shares について検証してみた。 cpu.shares とは cpu.shares を設定すると、タスクが使用できる CPU 時間の割合を変更することができる。 具体的に言うと、A B2つのグループを作り、cpu.shares をそれぞれ1024 2048とした場合、B のグループにいるプロセスが、A のグループにいるプロセスより 2倍 CPU を使えるようになる。以下、実行例。 # mkdir /cgroup/{A,B} # echo 1024 > /cgroup/A/cpu.shares # echo 2048 > /cgroup/B/cpu.shares # sh -c "while : ; do : ; done" & echo $! > /cgroup/A/tasks [1] 2835 #

          • 学び
          • 2018/08/24 19:59
          • Linuxでのサマータイム - JDTの来襲

            36 users

            harasou.jp

            最近、サマータイム導入の話で盛り上がっているので、Linux ではどうなっているのか調べてみた。 JDT(Japan Daylight Saving Time)って知ってる? 70年前の今日、日本はJST ではなくJDTだった。 $ date --date="70 years ago" Thu Aug 12 06:10:32 JDT 1948 JDT というのは、Japan Daylight Saving Time のことで、つまり、日本の夏時間。 日本でも 1948年から1951年の4年間、サマータイムが導入されていたので、 サマータイム中の日本の表示時刻は、普段よく目にする JST ではなくJDT になっている。 (実際は Epoch以前の話なので、当時、使われたことはないと思う:-) カーネルの時間 カーネルは、何月何日と言った情報は持っていない。 管理しているのは Epoch(UT

            • 世の中
            • 2018/08/13 13:48
            • JDT
            • JST
            • 雑学
            • linux
            • あとで読む
            • lego と Cloud DNS で Let's Encrypt の自動更新

              3 users

              harasou.jp

              気づいたらブログの証明書の期限が切れていた。めんどくさて数日放置していたけど、 さすがにエンジニアとしてまずいだろうということで自動化することに。 Let’s Encrypt (DNS-01) 使用していたのは Let’s Encrypt の証明書。証明書は ACMEというプロトコルを使用して 発行されるが、その手順の中で「ドメインの所有者どうか」といった認証がある。 この認証によく使われているのはHTTP-01だが、今回はDNS-01を使っている。 DNS-01 の流れ ACMEクラインアントが Let’s Encrypt に challenge を要求 受け取った challenge を _acme-challenge.harasou.jp の TXT レコードにセット Let’s Encrypt が TXT レコードの challenge を確認できれば証明書発行 自動化にあたって、

              • 暮らし
              • 2018/05/04 20:59
              • libfuse で Hello World !

                15 users

                harasou.jp

                GlusterFS でも利用されている FUSE を使って、Hello World を試して見た。 今回は libfuse を使って、仮想ファイルシステム上のファイルを cat すると Hello World ! が出力されるまで。 $ cat fuse/hello Hello World! FUSE (Filesystem in Userspace) FUSE は、linux 2.6.14 で追加されたカーネルの機能で、ファイルシステムをユーザ空間の プログラムで実装できる仕組み提供する。これにより、カーネルコードを修正することなく、 ユーザ空間で独自のファイルシステムを作成できるようになる。 Wikipedia によると、Linux だけでなく、*BSD や MAC とかでも実装があるらしい。 環境 確認はいつものごとく Vagrant で。 Vagrant.configure("2"

                • テクノロジー
                • 2017/12/05 22:06
                • fuse
                • libfuse
                • base32 についてメモ

                  3 users

                  harasou.jp

                  base32 について調べた際のメモ書き。 特徴 base32 は、base64 などと同様、バイナリ文字列とテキスト文字列の変換(エンコード or デコード)を行うアルゴリズム。 エンコードされたテキスト文字列は、A-Z(26文字) と 2-7(6文字)、= の 33文字で構成される。 大文字小文字の区別がない環境でも利用可能。 エンコードは、40ビット(5文字)単位を、8文字に変換していく。 40ビットに満たない場合は、= パティングする。 base32hex というのもあり、これは、0-9、A-V、= の33文字を使用する。 RFC RFC 4648 http://tools.ietf.org/html/rfc4648.html RFC 3458 http://tools.ietf.org/html/rfc3548.html (Obsoletes) 対応表 Table 3: The

                  • 世の中
                  • 2017/09/26 22:29
                  • Linux kernel を読むための準備

                    4 users

                    harasou.jp

                    仕事で kernel のソースが見る機会が度々ありそうなので、MAC上でソースをいつでも追えるように準備しておく。 準備といっても大したものではなく、 kernel ソースのダウンロード tag の作成 vim の設定 ぐらい。tag については、GNU GLOBAL などもあるが、とりあえず ctags で。 kernel source の取得 github ではなく tar ball からの取得。複数のリリースを取得するにはこちらの方が簡単そうだったので。 mkdir -p ~/src/kernel curl https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.2.4.tar.xz | tar zx -C ~/src/kernel/ tag の作成 linux kernel の Makefile には、tag を作成するターゲットが

                    • テクノロジー
                    • 2017/06/24 23:13
                    • Kernel
                    • Vim
                    • Linux
                    • Sparse File (スパースファイル) の仕組み

                      5 users

                      harasou.jp

                      最近かなり流行っている「Linux プログラミングインタフェース」を読んでたら、lseek(2) の解説で Sparse File (スパースファイル) の話が出てきたので、実装が気になって調べてみた。 ファイル末尾を越えた位置へシークするとどうなるでしょうか? そしてその位置で I/O を実行すると? … (略) 意外 に思われるかもしれませんが、書き込みは可能なのです。 refs: https://www.oreilly.co.jp/books/9784873115856/ Sparse File とは 簡単に言うと、内部に NULL のかたまり(ファイルホール)を含むファイルのこと。こんなやつ。 # ls -shl sparse_file 4.0K -rw-r--r-- 1 root root 1.1M 3月 24 01:30 2016 sparse_file ls で s

                      • 学び
                      • 2017/06/22 22:38
                      • カーネルモジュールで Hello World !

                        3 users

                        harasou.jp

                        Linux のカーネルモジュールで Hello World してみる。insmod、rmmod した時に dmesg にログを吐くだけの単純なもの。試した環境は、CentOS7 (3.10.0-123.4.4.el7.x86_64)。 カーネルモジュールの作成 適当なディレクトリを作成 #include <linux/module.h> #include <linux/init.h> static int __init helloworld_init(void) { pr_info("Hello World!\n"); return 0; } static void __exit helloworld_exit(void) { pr_info("Goodby World.\n"); } module_init(helloworld_init); module_exit(helloworld

                        • テクノロジー
                        • 2017/06/22 00:34
                        • kernel
                        • linux
                        • 512バイトを超える DNSパケット

                          11 users

                          harasou.jp

                          glibc の脆弱性 CVE-2015-7547 でも話題になった 512バイトを超える DNS パケットについてのメモ。 DNS では、TCP が使われたり、512 バイト超えるデータが扱われることは知っていたが、詳しい仕組みなど知らなかったので、備忘録のためにまとめておく。 そもそもなぜ 512 バイト? 調べてみると、 インターネットで使われている IP(IPv4)の仕様では 一度に受信可能なデータグラム(ヘッダーを含むパケッ ト)として、 576 バイトを保証しなければならないと定められています。この値は、64バイトのヘッダーと 512バイトの データブロックを格納可能な大きさとして選択されたものです refs: https://jprs.jp/related-info/guide/008.pdf とのこと。 インターネットで使われている IP の仕様では、かならず「1パケットで

                          • テクノロジー
                          • 2017/03/03 01:05
                          • dns
                          • NET
                          • network
                          • あとで読む
                          • Linux シグナルの基礎

                            595 users

                            harasou.jp

                            TLPI (The Linux Programming Interface) 再々。 TLPI の輪読の際に @matsumotory よりシグナルセットあたりをまとめるようにと指令が出たので、拙遅な感じでまとめました。 シグナルとは プロセス間通信の一種。「プロセスにシグナルを送信すると、そのプロセスの正常処理に割り込んで、シグナル固有の処理(シグナルハンドラ) が実行される」プロセス側では、シグナルを受信した際の動作(シグナルハンドラ) を設定することや、シグナルをブロックすることも可能。 コンソールで、プロセスを終了させるためにkill -9 <PID>とかCtrl+Cとかした際にも、対象プロセスにシグナルが送信されている。 ちなみに、PID「1」の init や systemd にkill -9 1しても何も起らない。(そういえば昔、oom-killer に init を殺された覚

                            • 学び
                            • 2017/01/24 09:34
                            • Linux
                            • シグナル
                            • signal
                            • kernel
                            • あとで読む
                            • プロセス
                            • programming
                            • カーネル
                            • systemd
                            • プログラミング
                            • Linux ACL の基礎

                              5 users

                              harasou.jp

                              上記 ACL を言葉で説明すると以下のような感じになる。 acl_file に、通常のパーミッション 640 を設定し、追加で paulhユーザ と annabelユーザ、teachグループに rw のアクセス権を設定する。 タグの種類 タグの種類は、通常のパーミッションに相当する基本ACLと、追加で設定するイメージの拡張ACLに分類される。 基本ACL ACL_USER_OBJ : 従来パーミッションの owner に相当 ACL_GROUP_OBJ : 従来パーミッションの group に相当 ACL_OTHER : 従来パーミッションの other に相当 拡張ACL ACL_USER : エントリのパーミションをタグ修飾子に指定されたユーザへ適用する ACL_GROUP : エントリのパーミションをタグ修飾子に指定されたグループへ適用する ACL_MASK : グループ

                              • 暮らし
                              • 2016/07/31 16:49
                              • harasou.jp

                                9 users

                                harasou.jp

                                CNDO2021 で、ミランティス社の嘉門さんが Lens のセッション やってて、面白そうだったので試してみた。 macOS 上に multipass で VM 立てて、k0s で作った Kubernetesクラスタを Lens で操作。 続きを読む

                                • テクノロジー
                                • 2015/05/07 19:11
                                • Linux

                                このページはまだ
                                ブックマークされていません

                                このページを最初にブックマークしてみませんか?

                                『harasou.jp』の新着エントリーを見る

                                キーボードショートカット一覧

                                j次のブックマーク

                                k前のブックマーク

                                lあとで読む

                                eコメント一覧を開く

                                oページを開く

                                はてなブックマーク

                                • 総合
                                • 一般
                                • 世の中
                                • 政治と経済
                                • 暮らし
                                • 学び
                                • テクノロジー
                                • エンタメ
                                • アニメとゲーム
                                • おもしろ
                                • アプリ・拡張機能
                                • 開発ブログ
                                • ヘルプ
                                • お問い合わせ
                                • 公式Twitter
                                • ホットエントリー

                                はてなのサービス

                                • はてなブログ
                                • はてなブログPro
                                • 人力検索はてな
                                • はてなブログ タグ
                                • はてなニュース
                                • App Storeからダウンロード
                                • Google Playで手に入れよう
                                Copyright © 2005–2022 Hatena. All Rights Reserved.
                                設定を変更しましたx