Linux

ターミナルに出力する文字に色付けするメモ

ターミナルに出力する文字に色をつけるということを試してみた。 LinuxであったりWindowsであったり他にも色々あるけれど、どの程度互換性があるのか分からないけど、とりあえずCentOS5.4とMacOSX10.6で動作することは確認してる。 Pythonで書くとこんな感じ…

IRC Server インストール

ローカル環境にテスト用の IRC サーバーを立てたメモ。 OSは CentOS 5.4 インストール ソースからインストールする。 今回落としてきたのは、こちら。 最終更新日時が 31-May-2005 21:42 のやつ。 解凍したら configure する。 configure が終わったら i686-…

pthread_key + 使い方

pthread_key 周辺の使い方を勉強。 スレッドごとにメモリ領域を確保する仕組み。 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <pthread.h> static pthread_key_t g_key; // スレッド単位で保持するデータ struct MyData{ int count; char data; }; static void* </pthread.h></unistd.h></stdlib.h></string.h></stdio.h>…

send と recv と送信バッファ溢れ

send と recv の使い方と送信バッファ溢れについて。 manpage Manpage of SEND Manpage of RECV SEND non-blocking の場合。 send が失敗して外部変数 errno に EINTR が設定されている場合は、再度送信を試みる必要がある。 データをソケットの送信バッファ…

Net-SNMP

下書きで放置していたSNMPに関するメモ。 インストール Net-SNMPからソースをダウンロード。 $ tar zxvf net-snmp-5.4.2.1.tar.gz $ cd net-snmp-5.4.2.1 $ ./configure --prefix=/usr/local/net-snmp-5.4.2.1 --disable-embedded-perl --without-perl-modul…

cacti

下書きで放置していた cacti に関するメモ。 インストール $ tar zxvf cacti-0.8.7a.tar.gz $ cp cacti-0.8.7a /path/to/ $ cd /path/to $ ln -s cacti-0.8.7a cacti $ cd cacti/include $ vi config.php apache のエイリアスをきってからアクセス。 アクセ…

TCPサーバ + サンプル

TCPサーバのサンプルコードのメモ。 簡単なコードだからか、何度も書いてはどこかへやってたのでいい加減保存することに。 動作は一応 Linux CentOS5, Mac OS X 10.6 で確認済み。 server/main.cpp に socket, bind, listen, accept, select, recv など。 cl…

epoll + 使い方

libevent のソースコードを参考にしつつ epoll を使ってみたメモ。 ただの興味本位。 動作は、Linux CentOS 5 で確認。 エラー処理とかはやってたりやってなかったり、わりと適当。 server.cpp /** * @file server.cpp * @brief epoll test server. */ #incl…

gdb + core 解析

core ファイルを解析するメモ。 下準備 まず意図的に SEGV させるコードを書く。 $ vi a.cpp #include class CPrint { private: int m_number; char *m_str; public: CPrint() : m_number(10), m_str(NULL) {} ~CPrint() {} void print(){ // ここで SEGV る…

NETDEV WATCHDOG: eth0: transmit timed out

自宅サーバのネットワークが突如不安定になる問題の解決メモ。 samba 経由で 10GB 程度のファイルをダウンロードしていると、サーバと通信が途切れてその後まともに通信出来なくなるという現象。 上記なことをしなければまったく問題なかったので、解決まで…

C + システムリソース設定

setrlimit(2), getrlimit(2) メモ。 コマンドラインから ulimit -n 1024 などとせず、プログラム上から設定するやつ。 limits.conf 以上の値を割り当てようとすると失敗するぽい。 サンプルソース #include #include #include #ifndef RLIM_INFINITY #define…

自宅サーバ + Vim

最小構成の vim-minimal しか入っていなかったので追加インストールしたメモ。 # rpm -qa | grep vim vim-minimal-7.0.109-4.el5_2.4z # yum search vim ... vim-X11.i386 : VIM バージョンの X Window System 用 vi エディタ vim-common.i386 : すべてのバ…

SSH + 鍵認証

自宅 Linux さんのセキュリティ設定メモ。 SSH 編。 公開, 秘密鍵をつくってパスワードによるログインを止める。 SSH ブルートフォースアタック対策の一環。 参考:総当たり攻撃 環境: サーバ CentOS 5.2 ( IP 192.168.11.30 ) クライアント iMac 10.5.6 ク…

TCP SYN flood 攻撃対策

TCP SYN flood 攻撃対策についてメモ。 SYN flood攻撃とは、TCP接続:3ウェイ・ハンドシェイクの仕組みを悪用し、サーバーのメモリ領域を飽和させダウンさせる仕組みらしい。 3ウェイ・ハンドシェイクの以下の部分。 ・サーバーは、クライアントから SYN パケ…

CentOS + セキュリティ設定

セキュリティ設定を行ったメモ。 以下の参考サイトを見ながら行って、特につまづくことなく終了した。 ファイル改竄検知システム導入(Tripwire) rootkit検知ツール導入(chkrootkit) アンチウィルスソフト導入(Clam AntiVirus) こういった構築メモは、本当に…

Postfix + インストール + OP25B設定

Postfix インストール& OP25B 設定メモ。 今回は簡単に yum で。 # yum -y install postfix ... Installed: postfix.i386 2:2.3.3-2.1.el5_2 Complete! インストール完了。 デフォルト MTA を変更。 # alternatives --config mta 2 プログラムがあり 'mta' …

MTA (sendmail, qmail, Postfix)

メール関連でごたついたついでにMTA(Mail Transfer Agent)のオススメを調べてみた。 古い記事だけど、「Linuxのメール・サーバー・ソフトはどれがいい?」が参考になった。 なるほどー。Postfix が良い感じってことか。 うちの centos さんは、 # alternat…

Outbound Port25 Blocking

いまは使ってない DELL DIMENSION 8300 を Linux 機にして復活させよう計画。 root に送られてくるメールを Gmail に転送する設定でつまづいたのでメモ。 テストメール送っても一向に届かないのでなんでだろーと調べたところ、 Outbound Port25 Blockingとい…

Munin + インストール

下書き状態で放置してた系のものをアップップ。 Munin http://munin.projects.linpro.no/ 必須Perl http://search.cpan.org/~rhandom/Net-Server http://search.cpan.org/~samtregar/HTML-Template/ インストール $ sudo make install-main Cron設定 $ cront…

Apache + SSH パスワード無し認証

Apache に SSH パスワードなし認証をさせるメモ。 特定のユーザでリモート先のスクリプトなどをWEBから操作したいとき便利。 前提として Apache が /usr/local/apache にインストールと、sudo の設定がされてる。 専用のApacheユーザを作成する。すでに存在…

unix timestamp + time zone.

UNIXタイムスタンプについて。 ちょっと思い違いをしていたのでメモ。 UNIXタイムスタンプは、1970年1月1日 0時0分0秒(GMT 世界標準時刻)からの通算秒。 MySQLのUNIX_TIMESTAMP()は、指定時刻に対して↑からの通算秒を返す。 time_zoneの設定をもとにしてGM…

CORESERVER + MySQL + 文字コード

現在 CORESERVER の2週間お試し期間中。 MySQL DB の文字設定がなんか微妙というメモ。 とりあえず DB はいくらでも作れるとの事なので、とりあえず1個つくってみた所、なんか文字コードが混在してる・・・ ¥s の結果 Server characterset: utf8 Db charac…

Unix 便利コマンド 2

ulimit 資源の制限を設定, 確認できます。 ulimit -a で全部確認。 epollを試そうとして同一ユーザで5000クライアントぐらいやったら ファイルディスクリプタの割り当てが全然足りなかったというオチ。 ulimit -n 5050 ぐらいにしとけば大丈夫でしょう。

シェルスクリプト えとせとら

------------------------------------- シェルスクリプト あちこちネット検索が手間なのでメモ ------------------------------------- 【気をつけること】 ・文字と改行コードに注意 【変数】 $0 ・・・スクリプト名 $n ・・・第 n 引数の値 $# ・・・引数…

MySQL 覚え書き。

MySQL 5.0 系では、log_slow_queries を SET GLOBAL で設定できない。 5.1系から設定できるようになっている様子。 設定するには、my.cnf に記述、もしくは、起動時に指定する。

UNIX 便利コマンド

UNIX の便利なコマンドを自分の中で整理の意味もこめてメモ。 条件を正規表現 ls -lt | grep -e '.[.].' 指定ディレクトリ内のディレクトリのみ検索。 find ./ -mindepth 1 -maxdepth 1 -type d -name abc 指定ファイル内の文字列を置換。 abc → def perl -i…

awk

さて最近、噂の古代言語 awk を知りました。 たぶん、UNIX で文書を読み取る必要があるときにいい感じ。 今回は、CSV ファイルを awk さんに解析して頂いた。 仮に test.csv として、中身は one,two,three two_one,two_two,two_three こんな感じだったとする…

ssh & リモート & コマンド & パスワードなし

ssh でもう1個の Linux をリモート操作してたんだけど、 その際、いちいちパスワード打つのがめんどっちくなったから ssh の公開鍵の作成をシェルで組んでみた。 とりあえず公開鍵の作成は、手打ち。で今回は DSA 認証。 local$ ssh-keygen -t dsa 空エンタ…