Home > QuickReference Archive

QuickReference Archive

Subversion

  • Posted by: YAMAGISHI Norimasa
  • 2011年11月 5日 23:51
  • QuickReference

リポジトリの作成

$ svnadmin create /var/svn/smtmpl

標準的なリポジトリ構成

リポジトリ
 + trunk (メイン) メインのソースディレクトリなど
 + branches (ブランチ用) ブランチのソースディレクトリなど
 + tags (タグ用) リリースした時点でのtrunkディレクトリのコピー

リポジトリの構築

$ svn mkdir svn+ssh://svn@tower.rally.or.jp/var/svn/mttmpl/trunk -m "trunkの作成"
$ svn mkdir svn+ssh://svn@tower.rally.or.jp/var/svn/mttmpl/tags -m "tagsの作成"
$ svn mkdir svn+ssh://svn@tower.rally.or.jp/var/svn/mttmpl/branches -m "branchesの作成"

-mオプションで、ログメッセージを指定することができる。指定しない場合は環境変数SVN_EDITORで指定したエディタが立ち上がる。

リポジトリへの登録(インポート)

メインブランチのtrunkにソースをインポートする。

$ svn import src svn+ssh://tower.rally.or.jp/var/svn/mttmpl/trunk -m "srcをimport"

なお、Subversion 1.6(CentOS 5.6)では、db/rep-cache.dbにグループの書き込み権がないので、最初にインポートしたユーザーと異なるユーザーでは書込できない。最初のインポート時に以下のコマンドで書き込み許可をしておく。

$ chmod g+w /var/svn/smtmpl/db/rep-cache.db

リポジトリへの追加

$ svn add src/index.html svn+ssh://tower.rally.or.jp/var/svn/mttmpl/trunk -m "index.htmlを追加"

リポジトリからのチェックアウト

$ svn ccheckout(co) svn+ssh://tower.rally.or.jp/var/svn/mttmpl/trunk dir

dirにより展開するディレクトリ名を指定できる。指定しなければURLの最終部分に展開される。

タグ付け

リリースする場合は、タグ付けを行う。

$ svn copy svn+ssh://nor@tower.rally.or.jp/var/svn/mttmpl/trunk svn+ssh://nor@tower.rally.or.jp/var/svn/mttmpl/tags/smtmpl-0.1.2 -m "mttmpl-0.1.2としてリリース"
これで、smtmpl 1.0.2のタグが作成される。

なお、copyは実際には物理的にファイルをコピーするわけではない。

また、ブランチを作成するにも対象がbranches/になるだけで、copyで行う。

差分確認

ワーキングファイルの修正点の確認。

$ svn diff

情報確認

ワーキングファイルがどのリポジトリからチェックアウトしたかなどの情報確認。

$ svn info

アップデート

リポジトリ上でされている更新の適用。

$ svn update

状態確認

更新状態のチェック。

$ svn status

-u -vオプションで最後に更新されているのがどのリビジョンかを見ることができる。

$ svn status -u -v

コミット

$ svn commit -m "styles.cssを修正" file

-mオプションで、ログメッセージを指定することができる。指定しない場合は、エディタが立ち上がる。

ログをみる

$ svn log filename

バージョンを選んで取り出す。

$ svn cat -r6 filename

$ svn update -r6 filename

マージする

リビジョンを変更する場合。

$ svn merge -r 7:6 filename

リビジョン7から6に戻す。

branchesからtrunkへマージする場合。

$ svn merge -r 18:HEAD file:///path/to/svnrepos/branches/hello-1.1

ワーキングファイルの修正を取り消す

$ svn revert filename

ファイルを追加する

$ svn add file2

リポジトリに反映させるためにはコミットが必要。

ディレクトリを追加する

$ svn mkdir doc

リポジトリに反映させるためにはコミットが必要。

ファイルを削除する

$ svn delete file2

ディレクトリも削除できる
リポジトリに反映させるためにはコミットが必要。

ファイルを移動する

$ svn move file2 file3

ディレクトリも移動できる
リポジトリに反映させるためにはコミットが必要。

ある時点でのスナップショットを引き出す

$ svn update -r7

最新にするには、「svn update」を行う。

キーワード置換

$Id$などのキーワード置換を行うにはsvn:keywordsプロパティを設定する。

プロパティを設定するには、
$ svn proset svn:keywords Id filename

プロパティの設定を見るには、
$ svn proplist -v filename

参考URL

Quick Reference: Emacs Outline mode

  • C-c C-a show-all すべてを表示
  • C-c C-k show-branches 下の小見出しを表示
  • C-c C-e show-entry 当該本文のみ表示
  • C-c C-s show-subtree 下の本文および小見出を表示
  • C-c TAB show-children 直下の小見出し(子)のみ表示
  • C-c C-t hide-body すべての本文を隠す、見出しはすべて表示
  • C-c C-q hide-sublevels 本文および小見出しを隠す(大見出しのみ残す)
  • C-c C-l hide-leaves 下の本文を隠す、小見出しは表示
  • C-c C-d hide-subtree 下の本文および小見出しを隠す
  • C-c C-c hide-entry 当該本文のみ隠す
  • C-c C-o hide-other 他の本文および小見出しをすべて隠す
  • C-c C-u outline-up-heading
  • C-c C-b outline-backward-same-level
  • C-c C-f outline-forward-same-level
  • C-c C-p outline-previous-visible-heading
  • C-c C-n outline-next-visible-heading
  • C-c @ outline-mark-subtree

インストール: pflogsumm

postfixのログ解析ツール、pflogsumm。

インストールといってもpostfixの一部として、以前postfixをBuildしたときにpflogsummもBuildされている。

ということで、rpmでインストールするだけ。

なのだが、必要なPerlモジュールを事前にインストールしてから、rpm -ivh。

# yum install perl-Date-Calc
# rpm -ivh /usr/src/redhat/RPMS/i386/postfix-pflogsumm-2.3.3-2.1.el5_2.i386.rpm

さらに、毎日のレポートがメールで届くように、cronに登録する。

コマンドラインオプション

-d today 今日のレポート
-d yesterday 昨日のレポート

-e
Message detail表示
処理番号と同時にすべてのメイルについて送信者、受信者を表示する。

-h
ホスト、ドメイン名の集計をTOP に限定する。0なら限定しない。

-i
--ignore_case
ドメイン名以外のユーザー名もすべて小文字に変換して扱う。
通常は、ドメイン名のみを小文字に変換する。

-m
uucp形式のアドレスも扱う。

--mailq
コマンドの最後にmailqコマンドを表示する(キューに入っているメイルを表示する)。

--no_bounce_detail
--no_deferral_detail
--no_reject_detail
それぞれ、bounce、deffer、rejectされた詳細を表示しない。

--no_no_msg_size
メッセージサイズが無いものについてのレポートを表示しない。

--no_smtpd_warnings
smtpdのWarningを「Warings」セクションにおいて表示しない。
SPAMやエラーなどで、(実害のない)大量のWaringが表示される場合などに設定する。

--problems_first
Problems(bounce、reject、defer、waring)などのレポートを先に表示する。
表示の順番が入れ替わるだけで、レポートに含まれるものは同じ。

--rej_add_from
「message reject detail」セクションに、ドメイン名だけでなく、メールアドレスも表示する。

-q
レポート内容が「none」、つまり内容が空のセクションについてはへッダを表示しない。
--smtpd_stats
smtpdコネクションの統計を表示する。

--syslog_name=name
ログ内でのpostfixのエントリーの名前を指定する。あえて変更していなければ、設定の必要なし。

-u
ユーザーの集計をTOP に限定する。0なら限定しない。

--verbose_msg_detail
「message deferral detail」の集計において、bounce、rejectの原因の同一性までも細かく見る。

--verp_mung
Senderのアドレスを、適当に短くまとめた形にして処理する。
正確には、'-'で区切られた数字の部分を'ID'に置換して処理する。
--verp_mung=2は、さらに'-'数字以降を省略して処理する。

--zero_fill
集計の桁揃えのために、数字の頭を0で埋める。

Quick Reference: tripwire

ポリシーファイルの作成(新規に作成する場合)

# twadmin --create-polfile -S /etc/tripwire/site.key /etc/tripwire/twpol.txt

データベースの初期化

# tripwire --init

チェック

# tripwire --check

データベースの更新承認

# (LANG=C; tripwire --update --twrfile /var/lib/tripwire/report/$(HOSTNAME)-$(DATE).twr)

もちろん、$(HOSTNAME)と$(DATE)には対象のレポートのものを指定する。

ここで、viによるレポートの更新承認画面が立ち上がるので、承認しないものの先頭の[x]を[]に書き換えて(つまり、すべて更新承認するなら何もせずに)、":wq"する。

-Pオプションでパスフレーズを指定できる。

# (LANG=C; tripwire --update -P local-passphrase --twrfile /var/lib/tripwire/report/$(HOSTNAME)-$(DATE).twr)

なお、LANG=Cを行わないで、日本語環境でやると失敗する。

ポリシーファイルのアップデートと(それまで存在しなかったチェック対象の)データベースのアップデート
この場合、事前にデータベースに不一致の項目がまったく無い状態にしておかなければならない。

# tripwire --update-policy /etc/tripwire/twpol.txt

データベースに不一致の項目がある状態でデータベースをアップデートするには、lowモードにする。

# tripwire --update-policy --secure-mode low /etc/tripwire/twpol.txt

ポリシーファイルのテキスト出力

# twadmin --print-polfile > twpol.txt

VNCまとめ

サーバ設定

/etc/rc.d/init.d/vncserverで起動する場合。

# vi /etc/sysconfig/vncservers
VNCSERVERS="1:nor"
VNCSERVERARGS[1]="-geometry 1024x768 -nolisten tcp -nohttpd"

$ vncpasswd
Password: ********
Verify: ********

ただし、このままだとウィンドウマネージャとしてtwmが使われるので、.vnc/xstartupの最終行の"twm"を"gnome-session"に変更。

ユーザがコマンドラインで使用する場合。
画面の多きさを指定したければ-geometryオプションを使う。

$ vncserver

New 'tower.rally.or.jp:1 (nor)' desktop is tower.rally.or.jp:1

起動するとディスプレイ番号を含むメッセージが表示される。

VNCクライアント(RealVNC)の起動

ディスプレイ番号1なら5901。

tower.rally.or.jp:5901

フルスクリーン表示からもとに戻すにはF8でVNCのメニューを出す。

vncserverの終了

-killオプションに続けてディスプレイ番号を入れる。

$ vncserver-kill :1

Quick Reference: yum

データベースのリストアップと更新
$ yum list

インストール
# yum install postfix

削除
# yum remove postfix

検索(説明などの部分が一致した場合も表示される)
$ yum search postfix

アップデートが行われているかをチェックする。
# yum check-update

特定のパッケージのアップデート
# yum update postfix

一括アップデート
# yum update

詳細説明表示
$ yum info postfix

ダウンロードしたパッケージの削除
# yum clean packages

キャッシュデータのクリア
# yum clean all

yumではないが、インストールされたファイルのリストアップ。
rpm -q -a

Index of all entries

Home > QuickReference Archive

Search
etc...
Feeds

Return to page top