====== 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