linux

なんかI/Oが刺さってるぞ、という時に...

I/Oを確認する方法をメモっておく。 リアルタイム sudo iotop または dstat --top-bio --top-io あとから sar -Bb -f /var/log/sa/sa28 -s '13:00:00' -e '16:00:00'

ファイルの拡張子を一括置換する

例えば application.css.scss -> application.scss という一括置換をしたい場合には find . -type f -print0 | perl -pe 's/\.css\.scss//g' | xargs -0 -I% git mv %.css.scss %.scss とすれば ok。 参照: find/xargsを使ったファイル・ディレクトリ名の一…

/etc/shadow の password field

/etc/shadow の password field に出現する "!" や "*" についてのメモ。 MAN USERMOD(8) OPTIONS The options which apply to the usermod command are: -L, --lock Lock a user's password. This puts a '!' in front of the encrypted password, effectiv…

Ubuntuにおけるinitと起動方法

sysvinit, upstart, systemd, update-rc.d, insserv の関係性・歴史的背景がよくわからなくていろいろ調べたので、メモしておく。 基礎知識 sysvinit とは? sysvinitはSystemV initの略で,UNIX SystemV(システムファイブ)と呼ばれるAT&T社謹製の古典的な…

IBM X40にUbuntuをインストールした

Windows XPのサポートが終了した。 が、OSサポートが終わったくらいでX40を捨てるのももったいないので、Ubuntuをインストールすることに。その時の記録を残しておく。 事例を探す X40にUbuntuをインストールしたというドンピシャな事例を発見! http://bell…

umask

引き続きAPUE Chapter4を読んでおります。今回はSection4.8 umaskについて。 The umask() routine sets the process's file mode creation mask to cmask and returns the previous value of the mask. The 9 low-order access permission bits of cmask are…

sticky bit

本日はAPUE Chapter5のsection4.10 Sticky Bitを読んでおります。 On contemporary systems, the use of the sticky bit has been extended. The Single UNIX Specification allows the sticky bit to be set for a directory. If the bit is set for a dire…

chmod

set-user-IDとset-group-IDのことが恥ずかしながらよくわかってなかったので調べてますよ、と。まずはMAN。 chmod(1) このマニュアルはGNU版 chmod コマンドについて記述したものである。 chmod コマンドは指定したそれぞれのファイルのアクセス権を mode に…

Perl Hackers Hub UNIXプログラミングの勘所(3)

シグナルに関するkazuhoさんの講義(http://gihyo.jp/dev/serial/01/perl-hackers-hub/000603)を読みつつ、分からない基本コンセプトをOperating System Concepts作者: Abraham Silberschatz出版社/メーカー: John Wiley & Sons Ltd発売日: 2009/02/13メデ…

selectシステムコール

たまに聞くけどよくわからんので調べてみた。 perldoc select RBITS,WBITS,EBITS,TIMEOUT This calls the select(2) syscall with the bit masks specified, which can be constructed using "fileno" and "vec", along these lines: select(2) select() や …

ファイルディスクリプタ(file descriptor)について調べてみた

Perl Hackers Hub 第6回 UNIXプログラミングの勘所(2)を読んでいたがよくわからなかったので、Operating System ConceptsやMANなどを読んで一から理解してみる。Operating System Concepts作者: Abraham Silberschatz出版社/メーカー: John Wiley & Sons L…

sudo: sudores/visudo

sudoという実に基本的なところだけど、すぐに忘れてしまうのでメモる。 /etc/sudoresが設定ファイルで、visudoが編集コマンド。直接/etc/sudoresを編集するのは望ましくない。 /etc/sudoresの書き方 ユーザ ホスト = (権限) コマンド という書式になっている…

Postfix Alias

Postfixのaliasを設定するには通常/etc/aliasesに書けばいいんですが、宛先に設定するアドレスはサーバ上の別ファイルで管理されており、どうしたもんかと悩んでました。 宛先ファイルが更新されたら、/etc/aliasesを手動で編集 → 忘れそう&面倒 宛先ファイ…

dig,smtp,postfix

はじめてpostfix設定したのだけど、調べたことメモ。 MXレコード DNSレコードのうち、メールサーバのIPアドレスが記載されたレコード。 dig example.com mx postfix /etc/postfix/main.cfが設定ファイル /etc/aliasesがデフォルトのaliasファイル Postfix設…

cutコマンド

スペースで区切る方法でよく嵌るので、メモ。 cut -f 4- /home/kotaro/foo.txt -d ' '

RPM,SRPM,SPECについて

RPM,SRPM,SPECについてなんとなくは分かっているが、自信もって人に説明できるレベルではないので、きちんと調べてみた。 http://www.itmedia.co.jp/enterprise/0309/26/epn02.html http://www.stackasterisk.jp/tech/systemManagement/rpm01_01.jsp RPM コ…

sambaのゴミ箱パージ

samba上で削除しても実際にはゴミ箱にいくだけなので、定期的掃除しないとdiskを圧迫してしまう。例えば7日間アクセスがないファイルをパージするには find ~/.recycle/ -atime +7 -type f -print0 | xargs -0 rm -f でOK。追記: あとからここの記事が詳しい…

last committerを取得する

ある条件を満たすスクリプト(大量)のラストコミッタが知りたいと思ったが、Linuxコマンドだけでは難しそう。 ということで、スクリプト書いてみた。 last_committer.pl #!/usr/bin/perl use strict; use warnings; use XML::Simple; while (<>) { chomp; n…

覚えておきたいscreenコマンド

リージョン C-a S リージョン分割 C-a Tab リージョン移動 C-a X リージョン消去 アタッチ/デタッチ C-a d デタッチ エンコーディング C-a :encoding (utf8|euc|sjis)

サーバリソースを調べる

知ってる人から言わせれば基本中の基本なんだけど、整理のために書き出してみる。 OSはCentOS。 リソース状況を調べる 全体 top ps -ef vmstat cpu mpstat -P ALL memory free I/O iostat -x スペックを調べる CPU cat /proc/cpuinfo メモリ cat /proc/memin…

Memory管理

32bit環境で扱えるMemは最大4GBだよん、という話はおぼろげながら知っていたが、原理をよく知らなかったので色々調べてみた。 アドレスとメモリの関係? 1つのアドレスに1byteのデータを格納する 32bitで表現できる範囲は0x00000000〜0xFFFFFFFF(16進数で)…

モジュールをyumからインストール

開発環境だとcpanコマンドを使うのが便利ですが、yumリポジトリから入れてみます。準備はCentOSリポジトリで終わっているので、あとは簡単。 例1: JSONをdagリポジトリから yum search perl-JSON --enablerepo=dag yum install perl-JSON --enablerepo=dag …

antとsubversion

Hiveを使うのに必要なので、インストールする。 環境はCentOS4.7 まずはantから インストール cd /usr/local/src wget http://www.meisei-u.ac.jp/mirror/apache/dist/ant/binaries/apache-ant-1.8.1-bin.tar.gz tar xzvf apache-ant-1.8.1-bin.tar.gz mv ap…

CentOSリポジトリ

デフォルトの状態だったので、yumの勉強兼ねてリポジトリをごにょごにょしてみる。 環境はCentOS4.7。 基礎知識 /etc/yum.repos.d/に.repoファイルを置く enabled=1にするとデフォルトで有効 enabled=0にしたものはyum enablerepo=***でインストール fastest…

はじめてのネットワーク設定

DNSクライアントとして使う場合のネットワーク設定。忘れっぽいのでちゃんと書いて覚える(>_ ホスト名の設定 /etc/sysconfig/network NETWORKING=yes HOSTNAME=mdev1 HOSTNAMEにはホスト名 or FQDN指定 DNSサーバを指定 /etc/resolv.conf domain localdomai…

はじめてのRPM

使ったことがないわけではないが、いまいち覚えてないのできちんとメモして覚える。 ファイル命名規則 (パッケージ名)-(バージョン)-(リリース番号).(アーキテクチャ).rpm 例えば、perl-5.8.8-27.el5.rpm 探す インストールされているか調べる rpm -…

はじめての起動

どういう流れでLinuxが起動されるのか勉強したので、まとめてみる。 起動の流れ 1. 電源をONすると、BIOSが起動される 2. BIOSはブートローダをメモリに読み込む MBR(mastert boot record)と呼ばれるHDDの先頭ブロックの領域に書かれている 3. ブートローダ…

パスワードなしでsshログイン

Hadoopの設定するために必要っぽいのでやってみたところ、ちょっとハマったのでメモ。 同じマシンへのsshなのでセキュリティは問題ない。(本番系でも踏み台サーバが堅ければ、やっても大丈夫そうだがこのあたりはいまいち自信なし) 1.秘密鍵と公開鍵作成 s…

Hadoop install

Hadoopを試してみたいので、手元にインストールしてみる。 環境はCentOS release 4.7。 jdk6のインストール http://java.sun.com/javase/downloads/widget/jdk6.jspからjdk-6u20-linux-i586.rpm.binをダウンロードしておく sudo su cd /usr/local/src chmod …

Install VIM7.2 with checkinstall

checkinstallの使い方を勉強になんか良い題材ないかなー、と探していたところvimのversionが古かったので、トライ。 概要 checkinstallについてさくっと書いてある http://itpro.nikkeibp.co.jp/article/COLUMN/20070821/280029/サイト http://www.asic-linu…