ドットインストール代表のライフハックブログ
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
Guides, HowTos and Tips for Technology Geeks - The Geek Stuff LinuxやFreeBSDなどのUnix系OSでは3つの権限と3つのユーザタイプでファイルやディレクトリのアクセス制御を実現する任意アクセス制御を採用している。こうしたOSを使用する場合には最初に理解すべきメカニズムといえる。UNIX / Linux: Beginners Guide to File and Directory Permissions ( umask, chmod, read, write, execute )にこのあたりの仕組みが簡潔にまとまっている。LinuxやFreeBSDを使い始めたばかりのユーザはチェックしておきたい内容。紹介されている内容は次のとおり。 基本の任意アクセス制御 3つの権限(read、write、execute)と3つのユーザ
grepコマンドでは、"-A"オプションを利用することで、パターンマッチした行の以下数行分をあわせて出力することが可能です。 プログラムの関数名と、その中身n行分を見たい場合なんかに使えます。 A NUM, --after-context=NUM NUM で指定した行数だけ、パターンにマッチした行の後の行も表示します。 http://www.linux.or.jp/JM/html/GNU_grep/man1/grep.1.html 実際には以下のような感じ。 $ cat /etc/init.d/httpd | grep 'start()' start() { $ cat /etc/init.d/httpd | grep -A 10 'start()' start() { echo -n $"Starting $prog: " check13 || exit 1 LANG=$HTTPD_LA
Linuxカーネルの話を知りたいなーってんで、『Linuxカーネル解読室』の輪講を始めました。とりあえず、カーネルのソースをがりがり読み込むというよりは、ざっくりと動作を把握しようという感じで。今日の初回は、第1章「プロセススケジューリング」を読みました。この分野にまったくもって不案内なので、難しい……。少しづつでも理解を進めたいです。 以下に資料を貼り付けておきます。実際には、id:naoyaをはじめとした参加者によるフォローに助けられて進めた感じなので、資料だけだといろいろとアレな面もあるとは思います。 Linuxカーネル2.6解読室 作者: 高橋浩和,小田逸郎,山幡為佐久出版社/メーカー: ソフトバンククリエイティブ発売日: 2006/11/18メディア: 単行本購入: 13人 クリック: 189回この商品を含むブログ (116件) を見る [24時間365日] サーバ/インフラを支
iptstate というコマンドがあることを始めて知りました。 iptstate は、netfilter の接続をトラックキングしているテーブルの情報を top のように表示してくれるコマンドです。 CentOS の場合は、すでに iptstate バージョン 1.4.1 が提供されていて、普通にインストールすると iptstate パッケージがインストールされています。 さっそく、試してみます。iptstate は、netfilter つまり iptables の接続トラックキングテーブルの情報を表示してくれるので、iptables が動作している必要があります。 $ sudo /usr/sbin/iptstate IPTables – State Top Version: 1.4 Sort: SrcIP s to change sorting So
最近、俄然、興味が湧いてきたコマンド。もし、欲しい機能に見合うコマンドがなかったら、自分で作るしかない。そのうち作ってみたいという希望もある。調べてみた。 作業環境 MacBook OSX 10.6.2 bash シェルスクリプトは今までも多少なりとも使っていたので、片言だがなんとか使っている。 基本 以下のスクリプトを~/Documents/hello.shとして保存した。 #!/bin/sh echo Hello, World! hello.shに実行権限を与える。 $ chmod +x ~/Documents/hello.sh パスを指定して呼び出せば、Hello, World!と表示された。 $ ~/Documents/hello.sh Hello, World! 引数の処理 有用なコマンドは、ほぼ間違いなく引数を伴う。 引数で渡されたデータを処理して、価値のある情報を出力してくれ
本番サーバ上で、sudo コマンド経由でスーパーユーザ権限で実行することはよくあります。 sudo コマンドはなくてはならないコマンドですが、同時に危険なコマンドでもあります。 今まで、ずっとデフォルトの sudo の設定で使っていたのですが、改めて設定を見直してみました。 sudo の公式ページをみてみると、頻繁にバージョンアップされているのがよく分かります。/etc/sudoers の設定方法も詳しいドキュメントがあっていい感じです。 次の2点ほど設定を見直しました。 デフォルトのパスワードのキャッシュ時間を 0 にする パスワードプロンプトにホスト名を表示する まず、最初の設定はデフォルトだと 5 分間、パスワードがキャッシュされます。そうすると、連続で sudo コマンドを実行するとき、パスワードを聞かれないためオペミスを起こしてしまう可能性が高まります。そこで、キャッシュ時間を
Bashの文法一覧です。他の言語をある程度知っている人はこれを読めばBashの基礎をマスターしてBashを書くことができるようになっています。簡易リファレンスとしても利用できると思いますので、これは足りないと思うものがあれば教えてください。 1.基礎 echo文 echo文です。 echo "Hello world" コメント コメントです。 # コメント 変数の宣言 変数の宣言です。 # 文字列変数 declare str # 数値変数 declare -i num # 配列変数 declare -a array スクリプトの実行 スクリプトを実行するにはコマンドラインで次のようにします。 bash script.sh 出力結果をファイルに書き出すにはリダイレクトを使います。 bash script.sh > file.txt 文法チェック 事前に文法チェックを行うには、次のようにします
http://utopia.knoware.nl/~hlub/rlwrap/ 今の今まで知らなかったんですが、rlwrap という readline ラッパーがかなり便利ちっくです。 これを使うと Readline によるコマンドライン入力に対応してないようなプログラムでも対応させてしまうことが可能です。 例えば ruby インタプリタを引数無しで起動して、カーソルキーの↑や←や ^H を押すと $ ruby ^[[A^[[D^Hなことになってしまうのですが、この rlwrap でラップして起動すると $ rlwrap rubyカーソルキーや ^H はもちろん、↑や C-p によるヒストリーバック、C-r による入力履歴のインクリメンタルサーチまでできてしまいます。すげー。入力した履歴はデフォルトだと ~/.プログラム名_history, ruby なら ~/.ruby_history に
Linux でよく使うコマンドに tar コマンドがあります。.tar, .tar.gz, .tgz などのアーカイブファイル、通称 tarball を作成・抽出するコマンドですね。 抽出(解凍)はよく使うから呪文のようにオプションを覚えているんだけど、アーカイブ作成(圧縮)の方はうろ覚えでした。ということで、改めて各オプションの意味を備忘録的に記しておきます。 まず、必須のオプション(機能指定文字)を選ぶ。 c : Create アーカイブの作成 x : eXtract アーカイブの抽出 これに次のオプションをつける。 z : gZip 圧縮・解凍に gzip を使う(もちろん gzip 形式の場合のみ) v : Verbose 作成・抽出時にファイルのリストを画面出力する f : File 作成・抽出するファイルを指定する(tar は本来テープメディアのためのコマンド (Tape AR
ネットワークアプリケーションの解析やデバッグなどにパケットキャプチャ(もしくはスニファ)は必須の機能で、UNIXであればtcpdump、snoop、wireshark*1、Plan 9であればsnoopyなどが存在する。パケットを横から盗み見するために、OSごとにいろんなアプローチを取っている。ある機能をどのように実装するかで、そのOSの設計哲学が透けて見えてくるかもしれない。ということで、今日はパケットキャプチャの実装方法について調べてみたい。 libpcap tcpdumpのパケットキャプチャ処理はlibpcapとして独立したライブラリになっていて、OS依存部分を隠蔽している。例えば、BSD系UNIXはBPF(Berkeley Packet Filter)、LinuxはPF_PACKETを利用してパケットキャプチャを実現している。より正確にはBPFはキャプチャとフィルタリングするのに対
シェルスクリプトは運用・管理で利活用すると非常に便利ですが、その反面root権限で誤ったシェルスクリプトを走らせてしまうと、システムを破壊してしまう恐れもあります。ここで紹介している一切の構文・サンプル文は自己責任でご参考下さい。 ・はじめに ・クオーテーション ・標準入出力 ・シェルスクリプト中の変数定義 ・制御文の構造 ・制御文の条件 ・シェルスクリプトでループ ・コマンドの連結 ・エイリアス と関数 ・Perlとの連動 ・シェルスクリプト構文集 ・戻る UNIXはMS-Windowsと違い拡張子でファイル形式を判別しません。ファイルの中身の先頭部分で判断します。つまりシェルスクリプトであると認識させるためにはファイルの先頭に、/bin/shと記述します。perlと認識されるには、/usr/bin/perlと記述します。これらはWindowsファイルの.txt(ド
gitの配布物に含まれる contrib/completion/git-completion.bash を . すると、gitのサブコマンドやそれに応じたオプション、加えて~/.gitconfigで自分用にaliasしたサブコマンドまで補完してくれるようになり、小学生もにっこりです。 同じく git-completion.bash の中で定義されてる関数 __git_ps1 を使ってシェルプロンプト($PS1)を設定すると、 #... if [ -r "$HOME/.bash_completion.d/git" ]; then # = git-completion.bash # boldにするエスケープシーケンスは省略してます PS1="${PS1}[\$(__git_ps1 \"%s)\")\w]\\$ " else PS1="${PS1}[\w]\\$ " fi #...こんなふうにg
RSSリーダーとかブックマークサービスとかアクセス統計サービスとかを作っていると、クローラの運用は必須。クローラは保護したいから、当然DMZに設置する。でもクローラがDMZ内にある他のホストにアクセスできちゃうとまずいわけで。 で、クローラからのアクセス先を制限する方法として、自分はいままで、squid なのでプロキシを立てて、クローラは必ずプロキシを使うように設定し、かつ、プロキシの設定で DMZ 内へのアクセスを弾くようにしていた。でも DNS Pinning 系の攻撃とかも考えて設定するのは面倒なわけで。 もっと楽な方法がないのかなと irc で聞いたら、id:hirose31 さんが iptables の owner モジュールでできるよ、と教えてくれた。ありがとうございます。 たとえばクローラを uid:crawler で動かすなら、 # sbin/iptables -A OUT
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く