一、修改文件系统,使文件系统支持ACL功能。
1)执行mount命令,得到以下输出:
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
2)执行 mount -o remount,acl/,然后效果如下:
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw,acl)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
二、编写oracle脚本,内容如下:
1)主脚本:oracle.sh
#/bin/bash
# Oracle database server
# create 2012-10-31
# author 87008170@163.com
SHELLHOME=/BBS_SHELL
function dbstart(){
su - oracle -c $SHELLHOME/.oracle_start.sh
}
function dbstop(){
su - oracle -c $SHELLHOME/.oracle_stop.sh
}
echo "Log information see the file /tmp/oracle.log!"
case $1 in
"start")
dbstart
;;
"stop")
dbstop
;;
"restart")
dbstop
echo "Please wait 10s!"
sleep 10
echo -e "Database is starting! \n"
dbstart
;;
*)
echo "Usage $0 { start | stop | restart }"
;;
2) 启动脚本:.oracle_start.sh
#!/bin/bash
LOGPATH=/tmp/oracle.log
echo "================$(date)=================" >> $LOGPATH
sqlplus >> $LOGPATH 2>&1 <<EOF
connect / as sysdba
startup
exit
EOF
lsnrctl start >> $LOGPATH 2>&1
echo "================$(date)=================" >> $LOGPATH
3) 停止脚本:.oracle_stop.sh
#!/bin/bash
LOGPATH=/tmp/oracle.log
echo "================$(date)=================" >> $LOGPATH
sqlplus >> $LOGPATH 2>&1 <<EOF
connect / as sysdba
shutdown immediate
exit
EOF
lsnrctl stop >> $LOGPATH 2>&1
echo "================$(date)=================" >> $LOGPATH
三、设置脚本ACL,执行以下命令:
setfacl -m u:oracle:rx .oracle_start.sh
setfacl -m u:oracle:rx .oracle_stop.sh