運用中のファイルサーバ(OS:FreeBSD)のバックアップを、新品のHDで取る。

まずは、新品のSerial-ATA HDDを取り付け、BIOSで認識されているのを確認。
その後、CentOSを通常起動。

# fdisk /dev/sdb


コマンドで"p"を押下。

なにもパーティションが無いのを確認後に、"n"で新規作成。

"p"で、「基本領域」を作成。

全部使うので、終点はデフォルトのままで、"Enter"押下。

"w"で書き込み。

ext3形式でフォーマット

# mke2fs -j /dev/sdb1


マウント用のディレクトリを作成。

# mkdir /mnt/backup

マウント

# mount /dev/sdb1 /mnt/backup


次に、ファイルサーバをマウント。

# mkdir /mnt/share

# mount -t cifs //192.168.xxx.xxx/share /mnt/share -o username=xxx,password=xxx

あとは、ひたすらコピー

# cp -Rp /mnt/share /mnt/backup

==================================================================================
※追記1

朝には、コピー完了の予定が、途中でフリーズしてしまった↓

cpコマンドは途中経過が一切わからないので、rsyncコマンドでコピーするように変更。

# cd /mnt/backup

# rsync -av --progress xxx@192.168.xxx.xxx:/share .

==================================================================================


==================================================================================
※追記2

今度は日本語ファイルが文字化け↓↓

ファイルサーバ(Samba)の文字コードが"CP932"なのが原因のようだ。

rsyncの"--iconv"オプションで対応できそうなので実行。

# rsync -av --progress --iconv=UTF-8,CP932 xxx@192.168.xxx.xxx:/share .

「unknown option」と怒られる。

rsyncのバージョンを2→3にアップグレード。


# yum update --enablerepo=rpmforge rsync

改めて、実行。

# rsync -av --progress --iconv=UTF-8,CP932 xxx@192.168.xxx.xxx:/share .


# vi /etc/sysconfig/network-scripts/ifcfg-eth0

================================
DEVICE=eth0
#BOOTPROTO=dhcp
BOOTPROTO=static
IPADDR=192.168.xxx.xxx
NETMASK=255.255.255.0
GATEWAY=192.168.xxx.1
HWADDR=xx:xx:xx:xx:xx:xx
ONBOOT=yes
================================

# service network restart
■PostgreSQLの設定

# service postgresql start

# chkconfig postgresql on


初期化

# initdb

PL/pgSQLのインストール

# createlang plpgsql template1

# psql -U postgres

postgres=# CREATE ROLE postfixadmin WITH LOGIN PASSWORD 'xxxxx';

postgres=# CREATE DATABASE postfix OWNER postfixadmin;

postgres=# \q


■Postfix Adminのインストール

# cd /var/www

# wget http://sourceforge.net/projects/postfixadmin/files/postfixadmin/postfixadmin_2.3.tar.gz/download

# tar zxvf postfixadmin_2.3.tar.gz

# ln -s postfixadmin_2.3 /var/www/postfixadmin

# vi postfixadmin/config.inc.php

---------------------------------------------------------
$CONF['configured'] = true;

$CONF['default_language'] = 'ja';

$CONF['database_type'] = 'pgsql';

$CONF['database_user'] = 'postfixadmin';

$CONF['database_password'] = 'xxxxx'

$CONF['domain_path'] = 'YES';

$CONF['domain_in_mailbox'] = 'NO';

$CONF['fetchmail'] = 'YES';
# ドメインをまたいだメールの検索とか取得はしない

$CONF['alias_control'] = 'YES';

$CONF['alias_control_admin'] = 'YES';
--------------------------------------------------------

その他、ドメイン名を一括置換。

:%s/change-this-to-your.domain.tld/example.com/g


# chown -R apache *
# chmod -R 400 *
# chmod 500 css images languages templates admin users


httpd.confに追記。

# vi /etc/httpd/conf/httpd.conf

-------------------------------------------------------




Alias /postfixadmin "/var/www/postfixadmin"


Options FollowSymLinks Includes ExecCGI
AllowOverride All
Order deny,allow
deny from all
allow from xxx.xxx.xxx.xxx/32


-------------------------------------------------------

# service httpd reload

https://example.com/postfixadmin/setup.php にブラウザからアクセスし、もろもろ設定。
セットアップパスワードのハッシュ(?)を設定ファイルに記述。

# vi /var/www/postfixadmin/config.inc.php

------------------------------------------------------------------
$CONF['setup_password'] = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
------------------------------------------------------------------

セットアップファイルを無効化。

# mv /var/www/postfixadmin/setup.php /var/www/postfixadmin/setup.php.org
# chown root setup.php








■ソフトウェアのバージョン
--------------------------------
・postfix-2.3.3-2.1
・dovecot-1.0.7-7.e15
・postresql-8.2.14-1PGDG.rhe15
--------------------------------

インストール済み、Postfixの削除

# yum remove postfix

yumのアップデートから除外

# vi /etc/yum.conf

--------------------
exclude=postfix*
--------------------

PostgreSQLをインストール

# yum install --enablerepo=pgdg82 postgresql postgresql-server postgresql-devel postgresql-libs

Postfixのソースをダウンロード

# wget http://ftp.riken.jp/Linux/caos/centos/5.4/os/SRPMS/postfix-2.3.3-2.1.el5_2.src.rpm

# rpm -ivh postfix-2.3.3-2.1.el5_2.src.rpm

spec ファイルの編集

# vi /usr/src/redhat/SPECS/postfix.spec

TLSの設定の下に、それぞれ下記を追加。

-------------------------------------------------------------------

# 5行目あたり

%define PGSQL 1


# 177行目あたり

%if %{PGSQL}
Requires: postgresql
BuildRequires: postgresql, postgresql-devel
%endif

# 202行目あたり

%if %{PGSQL}
CCARGS="${CCARGS} -DHAS_PGSQL -I/usr/include/postgresql"
AUXLIBS="${AUXLIBS} -lpq -lssl -lcrypto -lcrypt"
%endif

-------------------------------------------------------------------

ビルドしよう。

# rpmbuild -ba postfix.spec

# cd /usr/src/redhat/RPMS/x86_64

# rpm -ivh postfix-2.3.3-2.1.x86_64.rpm