脳汁portal

アメリカ在住(だった)新米エンジニアがその日学んだIT知識を書き綴るブログ

Linux

追加したディスクを認識させて利用できるように設定する方法

HDDの容量が足りなくなってディスクを追加したはいいものの、認識されなくて使えない場合にやった解決法です 1. ディスク追加 追加前 # cat /proc/scsi/scsi Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: VMware Model: Virtual disk Rev: 1.0 Type: Dir…

ぼくがかんがえたさいきょうの.screenrc(とAutoHotKey)

screenrc 全体像 ### Under Bar Style hardstatus alwayslastline "%H[%n] [%w]" termcapinfo xterm 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l' shelltitle "$ |bash" ## active screen is red(rw) ## non active screen are blue(bw) caption always "%?%F%{=…

ライブラリの依存関係を調査するlddコマンド

lddコマンドを使ってライブラリの依存関係を調べることが出来ます。 ライブラリ調査 コマンド ldd ${ライブラリ} 例 ldd libtokyocabinet.so libbz2.so.1 => /usr/lib64/libbz2.so.1 (0x00002b859cd82000) libz.so.1 => /usr/lib64/libz.so.1 (0x00002b859cf…

grepコマンドで指定したディレクトリ以下のファイル内容を全検索する方法

コマンド grep -r '#{検索したい輪ワード}' #{検索したいパス} 例 カレント以下のファイルからhogehogeという文字を含む行を全検索する場合 grep -r 'hogehoge' ./

Linuxのセクタサイズとブロックサイズの調べ方

セクタサイズ # fdisk -l /dev/sda1 | grep 'Sector size' Sector size (logical/physical): 512 bytes / 512 bytes HDDのデータ領域の最小単位 ブロックサイズ # tune2fs -l /dev/sda1 | grep "Block size" Block size: 4096 IO sysytemが利用する最小単位 …

ネットワークバイトオーダー・ビッグエンディアン・リトルエンディアンとは

バイトオーダー マルチバイトデータのメモリ上での並べ方(順番)のこと ホストバイトオーダー、エンディアンともいう この並べ順は統一されておらず、プロセッサの種類によって異なる 並べ方 ビッグエンディアン データの上位バイトからメモリに並べる並べ方 …

I/O多重化の方法(selectとepollの違い)

select 監視するファイルディスクリプタのサイズに制限がある 一件一件FDを確認する kernel側でFDのstatus情報を保持していないので、毎回チェックする必要がある I/O処理の流れ 1. select側で監視するFDのリストを持つ 2. I/O処理のリクエストをselectが受…

各種proxy設定(環境変数, yum.conf, wgetrc)

各種proxyの設定方法です。 環境変数 bash export http_proxy="${proxyURL}:${port}" export https_proxy="${proxyURL}:${port}" tcsh setenv http_proxy ${proxyURL}:${port} setenv https_proxy ${proxyURL}:${port} yum yum.confを作成・編集する vi /etc…

I/O waitが発生する原理(dirtyメモリ、write back)

I/O waitにはdirtyメモリとwrite back処理(pdflush)が深く関係しています。 書き込み処理 低負荷時 書き込み処理(見かけ上の書き込み処理) ↓ dirtyフラグと一緒に随時メモリに書き込まれる(dirtyメモリ) ↓ 5秒に一度dirtyメモリを読み取って実際に物理ディス…

screenで画面分割中に他の画面の内容をコピペする方法

方法 コピー # screen コマンドの開始 Ctrl+a # コピーモードの開始 [ # 始点の決定 Space # 終点の決定 Space ペースト # screen コマンドの開始 Ctrl+a # ペースト ] 例 例えば以下のように二画面に分けて、それぞれでvimを開きます。 ここで通常のyy等のv…

pingでport指定したい時

結論から言うとpingでは通常port指定が出来ないので「nping」コマンドを使いましょう。 ダウンロード nmapと一緒にダウンロードされるので、nmapをinstallします yum install nmap コマンド 使用法 nping ${host} -p ${port} 例 成功した場合 nping 175.41.2…

ネットワークが繋がらないときに調査する8項目+α

クライアント側(接続元)での確認 ping ping ${host} Ex.) ping 54.168.196.212 ・ ・ ・ 6 packets transmitted, 6 received, 0% packet loss, time 5387ms <== ここが0% packet lossじゃない場合おかしい rtt min/avg/max/mdev = 0.432/0.471/0.533/0.041 m…

AWSのvi(vim)のversionをupdateする方法

AWSに限らないが、vagrantのboxなどでプリインストールされているvi(vim)が古くて使いたい機能が使えない場合に最新のvimに入れ替える方法 手順 yum install vim mv /bin/vi /bin/vi_bk ln -s /usr/bin/vim /bin/vi

Historyコマンドに日時情報を追加する方法

LinuxのHistoryコマンドに日時データを追加する方法です。 方法 以下のコマンドをうてばOKです(bash)の場合 export HISTTIMEFORMAT='%y/%m/%d %H:%M:%S ' zshやtcshでも同じように環境変数にsetしてやれば動くと思います 結果 何もしないと以下のようにコマ…

sinatraをvhost上でpassengerを使ってサブディレクトリとして起動する場合

ディレクトリ構造 ①passenger.conf ・ ・ PassengerEnabled off <VirtualHost ${ipアドレス}:80> DocumentRoot ${vhostのドキュメントルート} ServerName ${vhost名} <Directory "${vhostのドキュメントルート}/${vhost名}/"> PassengerAppRoot ${sinatraのアプリのルート} RackEnv production RackBaseURI /${sinatraアプリのpublicディレクトリの</directory></virtualhost>…

AWSでpingは通るのに実際に接続しようとすると「No route to host」って言われる原因

pingは通ってパケットロスも無いのに、実際にtelnetやTCPSocketで繋ごうとすると「No route to host」って怒られる場合の対処法です。 試してみてダメだったこと /etc/hostsに色々書いてみた portとかも変更して色々試してみた AWSに関してはパブリックDNS、…

iptablesの設定方法(FireWall)

iptablesの設定方法はググれば山ほど出てくるのですが、ちょっとだけ自分の環境と違ったり、ちょっとだけ入力したい設定が入ってない場合が多いので、自分のメモ的要素も含めて書いておきたいと思います。 iptables設定手順 確認 まずは現在のFireWall設定を…

Linuxでプロセスの名前でkillする方法

稼働中のプロセスを名前で指定してkillする方法 pkill -f 'プロセス名' もしくは、 pgrep -f 'プロセス名' | xargs kill

sinatra + Apache + Passengerでサブディレクトリとしてアプリリリースする方法

sinatraアプリをApache + Passengerを使ってリリースする手順 Apacheのinstall まずはWebサーバとしてApacheをインストールします yum list installed | grep httpd yum install httpd httpd -v #Server version: Apache/2.2.15 (Unix) #Server built: Aug 2…

編集中のVimなど、作業中のプロセスを一時的にバックグラウンドに退避する方法

Viでファイルを編集して、その後webサーバを再起動して確認したい場合など、screenを使ったり複数ターミナルを開いていない限り 一度viを終了しなければいけません。 このとき何が面倒って、一度ファイルを閉じてしまっているので動かなくなったときにvimのu…

yumとwgetのプロキシ設定

yumとwgetのプロキシ設定の方法です。 wgetrc vi /etc/wgetrc ##以下の2行を追加 http_proxy = http://hoge-proxy.co.jp:1111/ ftp_proxy = http://hoge-proxy..co.jp:1111/ yum.conf vi /etc/yum.conf ##以下の1行編集 proxy=http://hoge-proxy..co.jp:2222/…

arpをソースからinstall

リポジトリが古いらしく、yum installでinstallされるarpが古かったりする場合にソースからダウンロードする方法 arpのインストール # ソースのダウンロード wget http://archive.apache.org/dist/apr/apr-1.5.1.tar.bz2 # buildに必要なライブラリのダウン…

Linuxで対象ディレクトリ以下のファイルの中身を一斉置換する方法

URLが変わったとか、ユーザネームを変えたいとか、特定のディレクトリ以下の全ファイルに対して、置換をかける方法です。 コマンド find ./ -name '*' -type f | xargs sed -i 's/${置換前}/${置換後}/g' ひとつずつ説明 # 指定したディレクトリ以下の指定し…

Linuxのscreenで縦分割にする方法

LinuxのScreenで縦分割にする方法です。 もちろん横(水平)分割も出来ます。 こんなん install手順 yum installでデフォルトにinstallされるscreenには縦分割機能がついていないので、gitからcloneしてきて使います。 cd /usr/local/src/ # 必要なライブラリ…

正規表現Tips18選

正規表現のTipsでよく使う記法等をTipsとして残します。 宣言方法 // //で囲むことにより正規表現を表せます %r{} %r{}の括弧内に書くことで正規表現を表せます Regexp.new() Regexp.newの引数として書くことで正規表現を表せます 正規表現文法 文頭指定(^) …

CentOSの言語設定を変更&反映させる方法

CentOSの言語設定を変更する方法です。 今回は試しにドイツ語から英語へ変更します。 現在の設定の確認 locale | grep LANG # ==> LANG=de_DE.UTF-8 一番上のLANGが言語設定です。 設定の変更 vi /etc/sysconfig/i18n ### LANGを以下に変更 LANG="en_US" 今…

tarコマンドの使い方とオプション

圧縮コマンドのtarの使い方とそれぞれのオプションの説明です 使い方 tar cvfpz ****.tar dir1 dir2 # (圧縮) tar tvfpz ****.tar # (確認・テスト) tar xvfpz ****.tar -C ${ディレクトリ指定} # (展開) - c 新しいアーカイブの作成 - t アーカイブ内容の一…

vmstatに時間の情報をつけて、標準出力とログの両方に出力する方法

コマンド 主にリアルタイム監視などの際に vmstatを1秒毎にコンソールに表示 かつ後で確認するために日時情報つけてログにも保存しておきたい ときのコマンドです。 vmstat 1 | gawk '{ print strftime("%Y/%m/%d %H:%M:%S"), $0 } { fflush() }' | tee vmst…

Linuxで指定したディレクトリ以下のファイル内容で検索する方法

以下のコマンドで指定したディレクトリ以下のファイルの内容で検索することができます。 コマンド grep -r '${検索したいワード}' ${検索したいディレクトリ} 例) grep -r 'debug' ./ 例ではカレントディレクトリ以下のdebugという文字を内容に含んでいるフ…

vi/vimのtips 35選

よく使う & 便利なvi/vimの機能をtipsとして残します。 ちょこちょこ追加とか削除とかするかもしれません。 移動系 行数を指定して移動 指定した行数へ飛びます :行数 単語単位で移動 w # 単語単位で右へ移動 b # 単語単位で左へ移動 行頭・行末へ移動 0 # …