読者です 読者をやめる 読者になる 読者になる

Linux

How to disable "Go Back" and "Go Forward" keys next to the cursor keys

Make .xmodmap in your home directory and login again. keycode 166= keycode 167=

dyndns.com 用のシンプルなクライアント

dyndnsを調べてみると、IPアドレスを更新するには、以下のURLにアクセスするだけでよいようだ。 http://members.dyndns.org/nic/update?hostname=ホスト名&myip=IPアドレスただしこのページにはBASIC認証がかかっている。 dyndns用のクライアントを探したけ…

外部からファイアウォール内のLinuxにsshでログインする方法

ファイアウォール内にある友人のLinuxをリモートからサポートしてあげる場合には、以下の方法でOK。ファイアウォール内にあるLinux上から以下のコマンドを入力する。 # ssh -N -R 20022:localhost:22 root@自分のサーバーのIPアドレスこれで、自分のサーバー…

man コマンドなどで日本語の方を見たいとき

rootの言語は英語にしているが、その場だけ日本語にしたい場合は、環境変数「LANG」に「ja_JP.UTF-8」にセットしてから実行すればよい。 # LANG=ja_JP.UTF8 コマンドそのままだとエラーメッセージも英語 # ls -ltr /foo/bar ls: /foo/bar: No such file or d…

Pthread の排他処理のサンプル

自分用。 ソース (pthread_mutex.c) #include <stdio.h> #include <unistd.h> #include <pthread.h> #include <stdlib.h> #define MAX_THREADS 3 void start_threads(void); void thread_main(void *args); void synchronized_printf(const char* s); static pthread_mutex_t mut = PTHREAD_MUTEX_I</stdlib.h></pthread.h></unistd.h></stdio.h>…

C言語で、Gratuitous ARPパケットを送信するサンプル

自分用メモ。 #include <errno.h> #include <stdio.h> #include <stdlib.h> #include <netdb.h> #include <string.h> #include <unistd.h> #include <ctype.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/ioctl.h> #include <sys/param.h> #include <sys/sysctl.h> #include <arpa/inet.h> #include </arpa/inet.h></sys/sysctl.h></sys/param.h></sys/ioctl.h></sys/socket.h></sys/types.h></ctype.h></unistd.h></string.h></netdb.h></stdlib.h></stdio.h></errno.h>

C言語でNICの情報を取得するサンプル

eth0 の IPアドレス、MACアドレス、ifIndexを取得するサンプル。自分用メモ。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/ioctl.h> #include <net/if.h> #include <netinet/in.h> #include <arpa/inet.h> void get_ifinfo(char *devname, struct ifreq *ifreq, int flavor) { int iofd; if ((iofd = socket(A</arpa/inet.h></netinet/in.h></net/if.h></sys/ioctl.h></string.h></stdlib.h></stdio.h>…

EeePC 2G Surf (Asus eee PC の北米仕様バージョン)の日本語化

http://www.potech.jp/pote/archives/2007/10/30-024620.php と http://hamada.typepad.jp/blog/2008/03/eee-pc-69f7.html を参考にしたら簡単に日本語化できたのでその時のメモ。 1. Ctrl + Alt + T でターミナル起動 2. sudo su - 3. vi /etc/apt/sources.…

GDBのまとめ

かなり自分用 起動・終了など コマンド 備考 起動 gdb プログラムファイル coreファイル付きで 起動 gdb プログラムファイル core 実行中のプロセスをデバッグする gdb プログラムファイル プロセスID 実行中のプロセスをデバッグする attach プロセスID 実…

Linux でCD/DVDを使うときのまとめ

以下はCentOS5.1の場合。DVDドライブは、/dev/hdc。前準備として ffmpeg をあらかじめインストールしておく。手順は CentOS5 でffmpeg のインストールと動画の変換 - Sleepless geek in Seattle を参照。 isoイメージの作成 # mkisofs -R -J -v -o ファイル…

yum (rpm) と apt-get の対応表

yum と rpm しか使ったことが無いので、apt-get の対応表を作ってみた。これからもどんどん加筆修正予定。 Redhat系 Debian系 Fedora22+ キャッシュの更新 apt-get update モジュールの更新 yum update apt-get upgrade パッケージの検索 yum search apt-cac…

[] Windowsの改行コード「^M」を削除する方法

CR+LF(0x0d, 0x0a)をLF (0x0a)にする。 sedの場合 # sed -e s/^v^m// foo.txt > bar.txt(Ctrl+v Ctrl+m と入力) viの場合 :%s /^v^m// trコマンド # tr -d < foo.txt > bar.txt dos2unixコマンド # dos2unix foo.txt perlで # Linux -> Windows # perl -…

ディスクレス 1CD Linux ロードバランサー

Linux LVS + Keepalived を使ったロードバランサーをKnoppix上に作って、故障しづらいディスクレスのロードバランサーを作ってみた。 Knoppixのカスタマイズは、「KNOPPIXを用いたLaTeX環境の構築とその活用」(http://www.ntt.co.jp/qos/tools/) をほとんど…

CentOS5.1 64ビット版の整数のビット長

テストコード #include <stdio.h> int main(){ printf("int is %d bit.\n", sizeof(int)*8 ); printf("long is %d bit.\n", sizeof(long)*8 ); printf("long long is %d bit.\n", sizeof(long long)*8 ); }結果 int is 32 bit. long is 64 bit. long long is 64 bit.l</stdio.h>…

CentOS5.1 用のApache1.3のRPM作成

checkinstall というプログラムを使えば、ソースファイルから任意のプラットフォーム向けのRPMやdebファイルを作成するできるらしい。実に胡散臭い。でも試してみたのでそのときのメモ。 準備 checkinstall のRPMを rpmfind.net などから探してインストール…

qpsmtpd のインストール メモ

PerlでできたSMTPサーバー qpsmtpd をCentOS5.1にインストールした時のメモ。これを使えば、SpamAssassinや、ClamAVなどをプラグインしたり、自分で書いたプログラムを簡単にプラグインできる。 インストール # yum -y install postfix system-switch-mail #…

ドメイン名、ホスト名、IPアドレスから国名を調べる方法

GeoIPを使えばできる。 インストール方法 CentOS # yum -y install GeoIP-devel GeoIP-data Ubuntu $ sudo apt-get install geoip-binperlからも使いたい場合は以下も。 # perl -MCPAN -e "install Geo::IP" 使い方 # geoiplookup www.yahoo.com GeoIP Count…

いらないデーモンの一括削除

仕事がら、しょっちゅうVMware上にCentOSをセットアップするのだけど、毎回、いらないデーモンを削除するのがめんどくさいのでよく使うコマンドをメモして再利用する。 D=(gpm messagebus irqbalance haldaemon yum mdmpd nscd anacron spamassassin openibd…

Semaphore (セマフォ) のサンプル

#include <unistd.h> #include <stdlib.h> #include <stdio.h> #include <sys/types.h> #include <sys/ipc.h> #include <sys/sem.h> #if defined(__GNU_LIBRARY__) && !defined(_SEM_SEMUN_UNDEFINED) /* union semun is defined by including <sys/sem.h> */ #else /* according to X/OPEN we have to define it ourselves…</sys/sem.h></sys/sem.h></sys/ipc.h></sys/types.h></stdio.h></stdlib.h></unistd.h>

fcntl を使ったファイルロック

fcntl を使ったファイルロックであれば、NFS上のファイルでもロックできる(らしい。) 以下はテストコード。 #include <unistd.h> #include <stdlib.h> #include <stdio.h> #include <fcntl.h> #include <sys/stat.h> int main(int args, char** argv ){ int file_desc; struct flock region; file_desc = open</sys/stat.h></fcntl.h></stdio.h></stdlib.h></unistd.h>…

bonnie++を使ったベンチマーク結果の見方

ベンチマーク実行方法 目的のディレクトリに移動して、コマンドを実行。 # cd /mnt/fs01 # bonnie++ -u 0:0 bonie++ の結果の見方 http://www.textuality.com/bonnie/intro.html の一部を勝手に翻訳。1. Sequential Output 1.1 Per-Character ファイルは put…

CentOS でJumbo Frameの設定方法

iSCSI などを使うときはJumbo Frame化することでパフォーマンスアップが期待できる。 ただし、サーバー、クライアント、経由するSwitchやルータすべてが Jumbo Frame に対応していなければパケットは破棄されて到達できない。一時的な設定変更であれば、以下…

CentOSからWindowsのドライブをマウントする方法

Linux側から、windowsやsambaのドライブをマウントできるらしいのでやってみた。 # mount -t cifs -o codepage=cp932,iocharset=utf8,username=yoshifumi1975,password=****** //192.168.211.2/temp /mnt/windows# ls -l /mnt/windowsで日本語のファイル名も…

CentOS5 でffmpeg のインストールと動画の変換

install rpmforgeのレポジトリの追加 # wget http://dag.wieers.com/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm # rpm -Uhv rpmforge-release-0.3.6-1.el5.rf.i386.rpmffmpeg のインストール # yum -y install ffmpeg # yum -y in…

setquota の使い方

edquota では大量のユーザをいっぺんに編集できない。setquota なら、コマンドラインから変更可能。 # setquota -u ユーザ名 ソフトリミット ハードリミット 0 0 /home

CentOSのネットワークインストールとローカルレポジトリのすすめ

会社などでしょっちゅうCentOSをインストールする場合などでは、DVDのイメージをマウントしてWEBサーバー等でLAN上に公開し、そこからインストールすると便利でよい。 さらに、LAN上でレポジトリを公開すれば、ネットワーク帯域の節約になったさらによい。と…

wget の代替コマンド

今のwget だと2GB以上のファイルはダウンロードできないようなので、代わりにcurlが使えるようだ。 # curl -C - -O http://example.com/foo.mpg

ntp サーバーの設定メモ

インストール # yum -y install ntp 設定 # vi /etc/ntp.conf # デフォルトで全部拒否。 restrict default ignore # ローカルホストからは何でもあり。 restrict 127.0.0.1 # LANからは、問い合わせOKにする。 restrict 10.0.0.0 mask 255.255.0.0 nomodify …

Linux の ページキャッシュの実験

Linuxではメモリに余裕があると一度読み込んだファイルをキャッシュしてくれるらしい。 ということで実験してみた。OS起動直後で何もしていない状態を確認。cache は、27328で約27MB。 # watch vmstat Every 2.0s: vmstat Tue Dec 4 13:21:57 2007 procs ---…

Linuxのディストリビューションを確認する方法 (Redhat系のみ)

# cat /etc/redhat-releasekernel のバージョンを見たいなら、 # uname -a

CentOSでタイムゾーンの再設定する方法

# system-config-date

Linux上で CDのisoイメージの作成方法

CDを入れて以下を実行。 # dd if=/dev/cdrom of=foo.isoまたは、以下のようにすれば、終了した際にメールが来る。 # dd if=/dev/cdrom of=foo.iso 2>&1 | mail メールアドレス -s "done."または、以下のようにすれば、終了した際にビープ音が鳴る。 とりあえ…

LVM メモ

LVMの新規作成 LVMパーティションの作成 # fdisk /dev/sdb n t -> 8e wphysical volumeの作成 # pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created # pvdisplayVolume Groupの新規作成。 # vgcreate -s 32m vg00 /dev/sdb1Logical Volum…

CentOS5 にMySQL+Mecab+SennaをRPMでインストールしたときのメモ

Mecab、Senna、いずれもCentOS用のRPMパッケージがまだ無いので作成。 MySQLへのSennaのパッチも当てたRPMを作成する。 Mecab のrpm作成&インストール まずspecファイルのために、src.rpmの取得&インストール。Fedora Core 7用のsrc.rpmを取得。 # wget ft…

CentOS用の system-config-authentication

yum search しても見つからない。どうやら、authconfig-gtk の中に含まれるらしい。 # yum -y install authconfig-gtk

CentOS5 にKeepalived をインストール

# yum -y install keepalivedしたが、見つからない。 http://rpmfind.net/ で探したが、CentOS5用はまだない。仕方がないので、ソースからインストールする。http://www.keepalived.org/download.html から1.1.13 をダウンロードした。 以下に、ソースからの…

src.rpm からオリジナルrpmの作成メモ

まずは準備 # yum -y install rpm-build # wget ********src.rpm # rpm -ivh ********src.rpm # cd /usr/src/redhat/SPECS # vi *****.spec # rpmbuild -bb ./****.spec apache2.0のrpmをカスタマイズしたときのメモ configureのオプションを変えたいだけな…

CentOS を pxebootでリモート起動して自動インストール

書き途中 CDでブートしてキックスタート boot: linux ks=http://<server>/ks.cfg boot: linux ks=nfs:<server>:/ks.cfg kickstart ファイル nfsインストール時 # Kickstart file automatically generated by anaconda. install nfs --server=10.0.7.171 --dir=/mnt/iso/ lang</server></server>…

ACLでアクセス権を細かくコントロールする

CentOSでACLを使ってみた。インストール # yum -y install acl libaclACL付きのバックアップ用コマンドstarもインストール # yum -y install staracl付きでマウントする必要がある # vi /etc/fstab defaults ↓ defaults,acl コマンドサンプル ユーザにアクセ…

ulimit の変更方法

現状の確認 [root@centos5 ~]# ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited max nice (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 4096 max locked memory (kbytes, -l) 32 max memory size (kbytes,…

NFSサーバーの設定メモ

インストール yum -y install nfs-utils-lib nfs-utils 設定 サーバー側の/etc/exports の設定例 /www 10.0.0.0/255.255.0.0(rw,no_root_squash,sync) 172.16.0.0/255.255.0.0(rw,no_root_squash,sync) 127.0.0.1/255.255.255.255(rw,no_root_squash,sync)サ…

php.ini の設定をhttpd.conf で上書きする方法

以下のようにすれば、VirtualHost毎にphp.iniの値を上書きできる。 <VirtualHost *:80> ServerAdmin aaaa@aaaaaa.com DocumentRoot "/var/www/html" ServerName test.test.test.com ErrorLog logs/localhost-error.log CustomLog logs/localhost-access.log combined php_value</virtualhost>…

KlabさんのLVSを使ったロードバランサ

http://dsas.blog.klab.org/archives/50664843.html 「こんなに簡単! Linuxでロードバランサ (1)」を見て実際に試した時のメモ。元記事ではDebianなので慣れているCentOSで試してみた。仕事で使っているCentOS4.4を使用。すべてのモジュールはRPMでそろえる…

静的ルーティング(スタティック ルート static route)の追加方法

routeコマンドで追加した場合、リブート時に消えてしまう。設定ファイルに書くことで、毎回設定される。 /etc/sysconfig/network-scripts/route-DEVICE名のファイルに静的ルーティングを書いておく。 cat << 'HERE_EOF' > /etc/sysconfig/network-scripts/ro…

yum のレポジトリ追加メモ

RHEL用のサードパーティのレポジトリ [dries] name=Extra Fedora rpms dries - $releasever - $basearch baseurl=http://ftp.riken.jp/Linux/dries/redhat/el$releasever/en/$basearch/dries/RPMS http://ftp.belnet.be/packages/dries.ulyssis.org/redhat/e…

CentOSのシステムのLanguageをEUCにするには

# vi /etc/sysconfig/i18n LANG="ja_JP.EUC-JP"

tune2fs サーバーを運用していると再起動時に fsck が定期的に実行されるが、そのタイミングの調節などは、tune2fs で実行可能。 resize2fs ファイルシステムのサイズの増減させるコマンド。 system-config-language CentOSなどでシステムのデフォルト言語の…

CentOS 5.0 にPHP 5.2.1 をRPMでインストールした時のメモ

PHP5.2からはファイルのアップロード時に何バイトアップロードしたかを取得するフックが用意されたとのこと。是非使ってみようということに。でもソースインストールは極力避けたいので、何とかRPMだけで入れられないかなと思ったらいれられたのでその時のメ…

MD5を生成するサンプル

openssl付属のライブラリを使ったサンプル。そのままだとバイナリのMD5が取れるので16進に変換するサンプル。 //注意 コンパイル時に -lssl を付けること。 #include <openssl/md5.h> void to_hex( unsigned char *md, int length, unsigned char *md_hex ) { static char t</openssl/md5.h>…

ddコマンドメモ

MBRのバックアップ&リストア バックアップ dd if=/dev/sda of=/boot/mbr_backup bs=512 count=1. リストア dd if=/boot/mbr_backup of=/dev/sda bs=446 count=1447 から 511 バイト目はパーティションテーブルなので、最初の446バイトのみリストアする。