weblog of key_amb

主にIT関連の技術メモ

Unix系OS

daemontools のない環境で envdir 的なことをする

daemontools*1は便利だけど、時には使えない環境もあると思う。 そんな環境で envdir 的なことをしたいとき、どうするかという問題。 envdir とは ドキュメントに書いてあるけど、指定したディレクトリ以下のファイルの中身を読み込んで、環境変数を読み込ん…

CoreOS Meetup Tokyo #1 に行ってきた #coreosjp

4/9(木) に開催された CoreOS Meetup Tokyo #1 に行ってきました。 3時間の中でイントロ除いて発表が7つあり、かなり内容が濃かったです。 一番面白かったのは @kawamuray さんの Docker に CRIU を実装した発表でした。 CRIU はコンテナ界隈でも注目度が高…

(メモ) メモリリークの調査方法まとめ

とりあえず参考になりそうな記事のリンクを貼っておきます。 ゆくゆくは加筆してツールや使い方をまとめるかもしれません。 [OS] メモリリークの調査方法 - th0x4c 備忘録 valgrind でメモリリリークを調べる - sonots:blog 恐怖の JVM 大量メモリ消費!メモ…

(メモ) upstart 経由のジョブ操作

# 一覧 initctl list # 起動/停止/再起動/設定ファイル再読み込み/状態確認 initctl [start|stop|restart|reload|status] <ジョブ名> 例 # svscan (daemontools) の再起動 initctl restart svscan 参考 Upstart の動きを理解する - いますぐ実践! Linuxシス…

Linux OS バージョンを調べるコマンド

どのディストリビューションでも使える標準的なコマンドとして、以下が挙げられます。 $ cat /etc/`ls /etc -F | grep "release$\|version$"` これは LinuxサーバーのバージョンやOS名を調べるコマンド(Linux) で紹介されており、Linux であれば、/etc/ 配下…

(メモ) Linux DFS について考える

とりあえず togetter にまとめたやつを貼っておく。 https://togetter.com/li/650283 tgtr.ListWidget({id:'650283',url:'https://togetter.com/',width:'480px',height:'480px'}); 6/10 追記 DRBD というやつがある。 これはネットワーク上で RAID を組むよ…

Linux のパフォーマンス解析ツール一覧

Twitter によいポストがあったので、転記しておく。 https://twitter.com/masterq_mogumog/status/446152875224207360/photo/1

プロセスが使用している環境変数を調べる

Linuxでプロセスが使用している環境変数を調べるには、/proc/$pid/environ を見るといい。 sudo cat /proc/${pid}/environ 参考 プロセスが使用している環境変数を調べる at technote

誤って作成したbonding deviceをきれいに削除する

とあるCentOSのVMで誤って tcpdump -i bond0 を実行してしまったところ、bond0 が作成されてしまった。 が、実際にはbondingは有効になっておらず、bond0は上がってなくておかしな状態。該当時刻にkernelが次のようなログを吐いていた。 kernel: bonding: MI…

CentOS 5にruby 2.0.0をインストール

rootで作業する。 http://www.ruby-lang.org/ja/downloads/ から最新のrubyを取ってくる。手元の環境だと古いバージョンのrubyがyumでインストールされていたので、 yum remove rubyで、予めアンインストールした。 tar xvzf ruby-2.0.0-p195.tar.gz cd ruby…

sysctlコマンド

sysctlコマンドはカーネルパラメータの修正に用いる。 変更できるパラメータは /proc/sys/ 以下にリストされているものである。 使い方 /sbin/sysctl -w {キー}={値}以下に例を挙げる。 /sbin/sysctl -w kernel.domainname="example.com"OSが再起動してもこ…

Linuxでのavahi-daemonの停止

CentOS 5でavahi-daemonが自動起動するようになっているが、これはApple方式の自動デバイス検出機能で、サーバ用途ではまず使うことはないだろう。 このdaemonはマルチキャストを行うので、動かしておくとよくないことが起こることもある。 というわけで、落…

Linuxの時刻合わせ

Linuxの時計にはハードウェアクロックとシステムクロックがある。 ハードウェアクロックは hwclock コマンドでアクセスできる。 システムクロックは date コマンドでアクセスできる。 システムクロックの表示・変更 date # 表示 date -s "10/05 18:00 2012" …

Linuxホスト名、IPアドレス変更

以下、永続的な変更の手順である。 ホスト名の変更は /etc/sysconfig/network を書き換える。 ネットワークセグメントが変わる場合、デフォルトゲートウェイも変更の必要があるだろう。 # vi /etc/sysconfig/network HOSTNAME=ホスト名 GATEWAY=デフォルトゲ…

Linuxにおけるファイルのタイムスタンプ (atime/ctime/mtime)

Linuxのファイルには3つのタイムスタンプがある。 atime ... 最終アクセス日時 mtime ... 最終変更日時 ctime ... 最終ステータス変更日時 ** タイムスタンプの表示 |sh| ls -lu # atimeの表示 ls -l # mtimeの表示 ls -lc # ctimeの表示 ||< または、statコ…

Linuxカーネルパラメータあれこれ

カーネルパラメータは /proc/sys 以下のファイルの値である。 この記事では、筆者が目にしたものをまとめていく。 パス 意味 例 net.ipv4.ip_local_port_range ローカルポートの範囲 "32768 61000" net.ipv4.tcp_syncookies SYN FLOODを防ぐ。Syncookieがカ…

GNU Parallelでコマンドをマルチプロセス実行

GNU Parallelというツールを使うと、コマンドを手軽に並列実行できるそうだ。 参考 Technical Memorandum: コマンドを手軽にマルチプロセス実行 GNU Parallel

Linuxのメモリキャッシュクリア

freeコマンドなどで見るcached, buffersは空きメモリではあるのだが、パフォーマンスを上げるために確保されている。 kernel 2.6.16以降では、これをコマンドで解放できるようになったそうな。 echo {1〜3の値} > /proc/sys/vm/drop_cachesで解放できる。こ…

Audit機能

ユーザが何をしているか監視する機能だそうな。 ログは /var/log/audit/audit.log に記録される。 参考 Linux Auditで社内からの脅威を検出する - SourceForge.JP Magazine : オープンソースの話題満載 Diverses Notes

カーネルパニックを発生させる

次のコマンドでカーネルパニックを発生させることができる echo c > /proc/sysrq-trigger 参考 【linux】カーネルパニックの種類 | 発生方法 | 対処

sudoの利用ユーザの設定

筆者の環境はCentOS 5。/etc/sudoers ファイルを編集する。 編集する際に、専用のコマンド=/usr/bin/visudo を使う。 操作はviと一緒。 # sudoers file. # # This file MUST be edited with the 'visudo' command as root. # # See the sudoers man page for…

NFSサーバの起動・停止

portmapが動いていないと、動かなかったりする。 以下、CentOS 5で確認。 起動 /etc/rc.d/init.d/portmap start /etc/init.d/nfs start 停止 /etc/init.d/nfs stop /etc/rc.d/init.d/portmap stopOS起動時に起動したい/したくないときはchkconfigで制御する…

crontabの書き方メモ

よく調べてしまうので、自分用のメモです。 例 0 1 * * * /path/to/command↑の場合、毎日1時0分にコマンドを実行します。crontabの左端から5番目までのフィールドはコマンドをいつ実行するかを指定する部分で、それぞれ以下に対応します。 No 時 値の範囲 1 …

ntpqコマンド

NTPサーバーと時刻同期がとれているかを確認する。 # ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================ *clock.nc.fukuok .GPS. 1 u 62 128 367 39.471 -11.0…

logrotateによるログのローテーション

私の環境はCentOS 5.3です。logrotateは/etc/cron.daily/にセットされてる。 $ cat /etc/cron.daily/logrotate #!/bin/sh /usr/sbin/logrotate /etc/logrotate.conf EXITVALUE=$? if [ $EXITVALUE != 0 ]; then /usr/bin/logger -t logrotate "ALERT exited …

Linux 32/64ビットマシンの見分け方

よく忘れるので書いておく。 64ビットCPU上で、64ビット版のカーネルが動作してるものが64ビットマシンらしい。 CPU $ cat /proc/cpuinfo |grep flags flagsの値にlmがあれば64ビットCPU。 カーネル $ uname -a x86_64とかamd64とかだったら64ビット版。 参…

Cache::FastMmapと仮想メモリ

FastCGIの全プロセスでデータを共有したくて、Cache::FastMmapを使ってみた。共有のshare fileを使う。 package MyApp::API::Cache; use Cache::FastMmap; my $fastMmap = Cache::FastMmap->new( share_file => '/tmp/sharefile-myapp-fastmmap', ); みたい…

Unix系シェルで使える便利なショートカット一覧

キー入力 機能 Ctrl + a カレント行の行頭へ移動する Ctrl + e カレント行の行末に移動する Ctrl + b 1文字戻る Ctrl + f 1文字進む Ctrl + l 画面をクリアする(現在の行は画面の一番上に残る) Ctrl + d カーソル位置にある文字を削除する Ctrl + u 行頭か…

(メモ) Unix系OS でのユーザ管理に関するファイル

ファイル /etc/passwd - ユーザアカウント情報 /etc/shadow - 安全なユーザアカウント情報 /etc/group - グループ情報 /etc/default/useradd - デフォルト情報 /etc/skel - ファイルの雛形が置かれるディレクトリ http://www.linux.or.jp/JM/html/shadow/man…