2011年3月31日木曜日

Linux 用語

  • このエントリーをはてなブックマークに追加


MakeFile
Makefileには、ソフトウェアをコンパイルするための手順や インストールするファイルなどが記されています。Makefileの 存在するディレクトリ内でmakeコマンドを実行すると、 Makefileの記述に基づいてソースがコンパイルされ、実行ファイル が生成されます。

Makefileは、configureスクリプトを実行することにより、システム に合ったものが自動的に生成されます。 ソースからソフトウェアをインストールする手順を覚えておきましょう。

(1) tarコマンドでアーカイブを展開
(2) configureスクリプトを実行してMakefileを生成
(3) makeコマンドでコンパイル
(4) make installコマンドで実行ファイルなどをインストール

gccやccコマンドは、単一のソースをコンパイルできるコマンドです。 makeコマンドを実行すると、多数のgcc(cc)コマンドが実行される様子 が表示されるでしょう。lddコマンドは、実行ファイルが必要としている 共有ライブラリを表示するコマンドです。

Samba
Sambaとは、LinuxとWindows間でファイルの共有を行うことができる
ソフトウェアです。Linuxサーバー側のファイルをWindows から
アクセスできるようにするためのサーバー機能と、逆に Windows のファイル
をLinux側から操作することのできるクライアント機能をもっています。
また、ファイル共有の仕組みを用いて、プリンタ共有も行うことができ、
ドメインサーバーとしての機能や、WINSサーバー機能などもあります。

NFS
NFSはNetwork File Systemの略です。離れた場所にあるコンピュータのファイルを、
あたかも自分のコンピュータにあるファイルのように操作することができます。
ファイルを他のコンピュータに提供するコンピュータを「NFSサーバ」、他の
コンピュータにあるファイルを利用するコンピュータを「NFSクライアント」
ともいいます。

ARP
送信先のコンピュータは通常IPアドレスもしくはホスト名によって指定 されます。そのため、なんらかの方法でIPアドレスとMACアドレスを変換 してやる仕組みが必要になります。それを担当するのがARPというプロトコル で、変換テーブルは「ARPキャッシュ」と呼ばれるテーブルに保存されます。 ARPキャッシュはarpコマンドで確認することができます。

ループバックアドレス
マシン内部でのアプリケーション間の通信のことをループバックといいます。 ループバックアドレスはそうした通信を可能にするために容易されているIP アドレスです。Linuxを含む多くのOSでは、通常、ループバックアドレスとして 「127.0.0.1」が使用されています。またこのIPアドレスに対応するホスト名は [localhost」となっています。

2011年3月29日火曜日

Debian cron(クーロン)の設定

  • このエントリーをはてなブックマークに追加


参考:cronの設定ガイド

Debian シェルスクリプトによるシステムアップグレードの自動化

  • このエントリーをはてなブックマークに追加


Debianシステムアップグレードを自動化するために、シェルスクリプトを作成してみました。

#!/bin/sh
#This script is for upgrading automatically

JOBLOG=/var/log/auto-upgrade.log
#the max size of JOBLOG
MAX_SIZE=300000
SIZE=`wc -c $JOBLOG | awk '{print $1}'`

#ログファイルのサイズをチェック
if [ $SIZE -gt $MAX_SIZE ]
then
echo > $JOBLOG
fi

echo "`date "+%Y/%m/%d %T"` ****** $0: Job start at `/bin/hostname` ******" >> $JOBLOG 2>&1
#echo -n "*** $0: Job start at `/bin/hostname` on " >> $JOBLOG 2>&1
#date "+%Y/%m/%d %T" >> $JOBLOG 2>&1

#Debian stable/testing
echo "`date "+%Y/%m/%d %T"` Command:"apt-get update" is running ......" >> $JOBLOG 2>&1
apt-get update >> $JOBLOG 2>&1
echo "`date "+%Y/%m/%d %T"` Command:"apt-get update" is finished ......" >> $JOBLOG 2>&1

echo "`date "+%Y/%m/%d %T"` Command:"apt-get upgrade" is running ......" >> $JOBLOG 2>&1
apt-get -y upgrade >> $JOBLOG 2>&1
echo "`date "+%Y/%m/%d %T"` Command:"apt-get upgrade" is finished ......" >> $JOBLOG 2>&1

echo "`date "+%Y/%m/%d %T"` Command:"apt-get autoclean" is running ......" >> $JOBLOG 2>&1
apt-get autoclean >> $JOBLOG 2>&1
echo "`date "+%Y/%m/%d %T"` Command:"apt-get autoclean" is finished ......" >> $JOBLOG 2>&1

#apt-get update >> $JOBLOG 2>&1 && apt-get upgrade >> $JOBLOG 2>&1 && apt-get autoclean >> $JOBLOG 2>&1

echo "`date "+%Y/%m/%d %T"` ****** $0: Job ended at `/bin/hostname` ******" >> $JOBLOG 2>&1
echo >> $JOBLOG 2>&1

#ログファイルの内容をadministratorにメールツールする
ADMIN_MAIL=administrator@debian.test.local
case "$ADMIN_MAIL" in
*@*)
cat $JOBLOG | mail -s "[cron-log][`/bin/hostname`] APT Upgrade Log" $ADMIN_MAIL
;;
esac
exit 0

スクリプトファイルを実行可能にする。

毎週一回実行したいので、cronに登録する。
方法一:直接/etc/cron.weeklyにコピーする。
方法二:/etc/crontabファイルを編集する
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#毎週の日曜日の朝2時、スクリプトを実行する
0 2 * * 7 root /usr/local/scripts/autoupgrade



2011年3月25日金曜日

Linux grepコマンドで使う正規表現

  • このエントリーをはてなブックマークに追加


grep コマンドは、ファイルの中からデータを検索します。また、パイプ"|" grep とすることで、標準入力から入ったデータに対し検索を行うことも可能です。

書式
grep [オプション] 検索条件 [指定ファイル]

指定ファイルの部分は、1つでもかまいませんし、*のようなワイルドカードを利用した複数ファイルの指
定でも可能です。 ワイルドカードとは、不特定の文字列を表現するのに利用される記号のことです。
検索条件として、正規表現が用いられます。正規表現は、grepのみならずUNIXで用いられるパター
ンマッチや、他のプログラミング言語でも利用されている、非常に重要な機能です。

正規表現で主に用いられる記号は次の通りです。
記号 意味
^ 行頭を表す
$ 行末を表す
. 任意の一字を意味する
* 直前文字の0回以上の繰り返しを意味する
[...] ...の中の任意の一字を意味する
[^...] ...の文字が含まれないことを意味する。
\ 正規表現の記号をエスケープする。

■利用例
^abc abcで始まる文字列
abc$ abcで終わる文字列
a.b aとbの間に一文字入っている
[ab]ab a もしくはbで始まるab(aab, bab)
[^ab]ab a もしくはbで始まらない(not)で、abが続くもの(例:xab, zab等)


2011年3月7日月曜日

Debian,Ubuntu Subversionのリポジトリデータの移行

  • このエントリーをはてなブックマークに追加


前回は、Debianでサブバージョンサーバーの構築を紹介しました。
今回は、サブバージョンサーバーのデータ移行について、メモを書きます。

シナリオ:
旧SVNサーバー
OS:Debian squeeze
ユーザー:user1
ホスト名:host1
リポジトリ:/var/svn

新SVNサーバー 
OS:Ubuntu 10.10
ユーザー:user2
ホスト名:host2
リポジトリ:/home/repos

新サーバーで前回で紹介した手順で、Subversionに必要なパッケージをインストールし、必要な設定を行う。


新サーバーで構築を終了したら、移行作業に入る。

①旧サーバー上でリポジトリをバックアップする
svnadmin dump /var/svn > /home/user1/backfile

②旧サーバー上でSCPコマンドを実行し、backfileを新サーバーに転送する
scp /home/user1/backfile user2@host2:/home/user2

③新サーバー上でbackfileをリストアする
svnadmin load /home/repos < /home/user2/backfile

これで終了。