最近在学习shell脚本,就仿照网上的例子,写了一个简单的安装oracle前,要创建用户修改参数的一个脚本。
#!/bin/bash
if [ ! $1 ] || [ ! $2 ]
then
echo "execute error,please input sid and oracle basic home path"
exit
fi
#yum install -y binutils* compat-libstdc++* elfutils-libelf* elfutils-libelf-devel* elfutils-libelf-devel-static* gcc* gcc-c++* glibc* glibc-common* glibc-devel* glibc-headers* kernel-headers* ksh* libaio* libaio-devel* libgcc* libgomp* libstdc++* libstdc++-devel* make* numactl-devel* sysstat* unixODBC* openmotif* compat-lib* compat-gcc*
/usr/sbin/groupadd -g 500 oinstall
/usr/sbin/groupadd -g 501 dba
/usr/sbin/useradd -g oinstall -G dba oracle
echo oracle | passwd oracle --stdin
mkdir -p $2
mkdir -p $2/app/oracle
chown -R oracle:oinstall $2
chown -R oracle:oinstall $2/app/oracle
chmod -R 775 $2
cat > /home/oracle/.bash_profile <<EOF
export PATH=$PATH:$HOME/bin
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=$2/app/oracle
export ORACLE_HOME=$2/app/oracle/product/11.2.0
export ORACLE_SID=$1
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
EOF
cat >> /etc/security/limits.conf <<EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
EOF
echo "session required pam_limits.so ">> /etc/pam.d/login
cat >> /etc/profile <<EOF
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
EOF
cat >>/etc/sysctl.conf <<EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
EOF
sysctl -p
运行脚本的时候 记得给文件运行权限,还要带参数 第一个SID ,第二个是安装的根路径。