運用中のファイルサーバ(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 .
まずは、新品の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
================================
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
# 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
--------------------------------
・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