1.メタ文字の使い方

  メタ文字は以下の文字

  . 、 ^ 、 $ 、 [ 、 ] 、* 、+ 、? 、|、( 、)


 1.1 そのメタ文字自体が意味する

  .・・・何でもよい一文字


 1.2 直前の1文字に対して作用する

  *・・・0回以上の繰り返し

  +・・・1回以上の繰り返し = {1, }

  ?・・・0回または1回の繰り返し

  {n}・・・n回の繰り返し

  {n,}・・・n回以上の繰り返し

  {n,m}・・・n回以上m回以下の繰り返し


1.3 直前の複数文字に対して作用させるには

  ( )・・・グループ化

  例:(abc)?・・・abcが0回または1回の繰り返し


1.4 後ろ全ての文字に対して作用する

  ^・・・行頭(改行のあとの行頭を含む)


1.5 前にある全ての文字に対して作用する

  $・・・行末(改行前の行末を含む)


1.6 作用範囲を限定するもの

  ( )・・・グループ化

  [ ]・・・いずれか一文字→反意語→[ ^ ]


1.7 後方参照

  すでにマッチしたテキストにマッチ

  \1,\2,\3・・・・

  例:A (\w+) is \1

  ○A promise is promise

  ○A bargain is bargain

  ×A liar is worse

  入れ子の場合は開きカッコが現れる順に後方参照

  ( ( .* ) / ) ? ( .*? ) (\. (.+) )?

  ↑ ↑ ↑ ↑ ↑

  \1 \2 \3 \4 \5


1.8エスケープ

  上記のようなメタ文字自体をパターンマッチングさせる場合は\を使う


1.9その他のメタ文字

  \s・・・空白スペース(タブ、改行[LF]、復帰[CR]、改ページ[FF]を含む。\t\n\r\fと同じ)

  \S・・・空白スペース以外

  \d・・・数字

  \D・・・数字以外

  \w・・・単語を構成する文字。アルファベット、数字、アンダースコア。[a-zA-Z0-9_]と同じ。

  \W・・・単語以外

  \n・・・改行

  \r・・・キャリッジリターン

  \t・・・タブ

  \f・・・改ページ

perlのモジュールをインストールしようとしたらlibxml2-develがlinuxにインストールされていないことが原因とわかった。


このlibxml2-develとはなにか。


そもそもlibxml2とは何かを調べてみた。


要はXMLを扱う基本ライブラリだそうだ。つまりphpでもperlでもxmlを使う場合はLinuxにlibxml2が

インストールされていないといけない。


今回の場合、libxml2はインストールされていたがlibxml2-develがインストールされていないために

エラーが起こっていた。


この”devel”だが「開発版」つまりdevelopのdevelらしい。開発版だからといって不安定ということはなく

一般的に利用される。

なので、develがあるのものdevelも一緒にインストールする必要がある。


サーバー移管 4つの手順



1.サーバーの構築

   移管先が専用サーバーの場合はサーバーのインストールなどを行なう。


2.データ移管

   mysqldumpを使ってダンプ。ダンプファイルを移管先に転送して、移管先でDBを復元。


3.ディレクトリ・ファイル移管

   rsyncを使ってディレクトリ・ファイルを移管先に転送。所有権の変更も忘れずに。


4.設定の踏襲

   cronなどの設定をひとつひとつ確認しながら踏襲



サーバー移管に際してディレクトリやファイルを移管する。



×・・・winSCPを使っていったnローカルPCにファイルをダウンロードして、移管先サーバーにアップロード

    →winSCPではroot権限が使えないため、所有権rootのディレクトリ・ファイルがダウンロードできない

×・・・scpコマンドを使って移管元サーバーから移管先サーバーへディレクトリ・ファイルを転送

    →遅い

○・・・rsyncコマンドを使って移管元サーバーから移管先サーバーへディレクトリ・ファイルを転送

    →早い。SSHで転送できる。



1.rsyncで転送

  例:1

  rsync -avz -e ssh /home/someone/aaa.txt ユーザー名@ホスト名:/home/anyone

   -a タイムスタンプ、アクセス権を維持したまま再帰的に転送

   -v 転送しているファイルを表示する

   -z ファイルを圧縮して転送する

   -e ssh SSHで通信する


2.所有権の変更

  ディレクトリ・ファイルの全て所有権は移管先のユーザー名になってしまう。

  apacheでアクセスするものやrootでアクセスするものもあるので移管元サーバーにしたがって

  ひとつずつ所有権を変更する。

サーバー移管に際してMySQLデータのバックアップと復元を実施


1.バックアップ

shell>mysqldump database -u mysqluser -p table1 table2 >/home/someone/databasedump.sql

shell>passwd:パスワード   #パスワードを聞かれるのでmysqlパスワードを入力


2.復元

shell>mysql database -u mysqluser -p < /home/someone/databasedump.sql

shell>passwd:パスワード  #パスワードを聞かれるのでmysqlのパスワードを入力