====== CentOS KickstartでSambaを自動セットアップする ======
sambaを設定して、データベースのバックアップファイルをWindowsネットワークフォルダ経由でコピーすることができるようにしています。
sambaの使用にあたってSELinuxの設定が面倒だったので無効にしました。
===== %postスクリプト =====
[[centos:kickstart:kscfg|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