目次

CentOS KickstartでSambaを自動セットアップする

sambaを設定して、データベースのバックアップファイルをWindowsネットワークフォルダ経由でコピーすることができるようにしています。 sambaの使用にあたってSELinuxの設定が面倒だったので無効にしました。

%postスクリプト

CentOS Kickstart 設定ファイルから抜粋してます。

mkdir /home/smb
mkdir /home/smb/share
\cp -rf /root/samba/smb.conf /etc/samba/smb.conf
chkconfig smb on
chkconfig nmb on

mkdir /home/smb/share/bkup-oracle
mkdir /home/smb/share/bkup-postgres
\cp -rf /root/backup/backup-database.sh /root/
crontab /root/backup/backup-database.crontab
cat /root/backup/backup-database.rclocal >> /etc/rc.local

chown -R nobody.nobody /home/smb
chmod -R 777 /home/smb
\cp -rf /root/selinux/config /etc/selinux/config

smb.conf

[global]のすぐ後に追加

[global]
	unix charset = UTF-8
	dos charset = CP932

ワークグループをWindowsに合わせる

	workgroup = WORKGROUP

セキュリティを変更

	security = share

最後に追加

	[Share]
	path = /home/smb/share
	writable = yes
	guest ok = yes
	guest only = yes
	create mode = 0777
	directory mode = 0777
	share modes = yes

backup-database.sh

oracleとpostgresのDBバックアップを行う。 portはマスクかけています。

当初sudoで処理させようとしましたが、上手くいかなかったので処理を変更しています。

#!/bin/bash
 
cd /home/smb/share/bkup-oracle
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=${ORACLE_BASE}/product/11.2.0/xe
export ORACLE_SID=ORCL
export ORACLE_BASE=/u01/app/oracle
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib/:/lib:/usr/lib
NLS_LANG=Japanese_Japan.JA16SJISTILDE; export NLS_LANG
exp SYSTEM/manager FILE=expfull.dmp FULL=y LOG=expfull.log
 
cd /home/smb/share/bkup-postgres
#sudo -u postgres pg_dumpall -p ????? > pgfull.dmp 
su -l postgres -c "pg_dumpall -p ?????" > pgfull.dmp
 
chown -R nobody.nobody /home/smb/share

backup-database.crontab

毎日03:08にバックアップを実行する

8 3 * * * /root/backup-database.sh

backup-database.rclocal

起動時にバックアップを実行する

bash /root/backup-database.sh

/etc/selinux/config

SELinuxを無効にする

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted