Script for AIX customization
cat customize_aix.sh
#!/bin/ksh93 #set -x ################################################## #@(#) customize AIX # version 1.0 Manu 02-2019 # version 1.1 Manu 10-2019 sn=$(basename $0) logpath=/root/scripts/log logname=$logpath/$sn.log p_id=$$ HOST_NAME=$(/usr/bin/hostname -s) script_path=/root/scripts script_path_log=${script_path}/logs #Mail sendmail_ds="mysmtpserver.lan" sendmail_dj="" #DNS dns_server="1.2.3.4 2.5.6.8" dns_domain="gggg.com" dns_search="ggg.com aaa.com bbb.be" dns_options="options timeout:1;options attempts:1;options rotate" #NFSv4 nfsv4dom="nfsv4_dom" # NTP servers ntp_server="ntp1 ntp2" # Manage exceptions if [ -f /usr/ios/cli/ioscli ] then TYPE=VIOS else if [ -f /usr/sbin/lsnim ] then TYPE=NIM else TYPE=AIX fi fi if [[ "${HOST_NAME}" == "syslog1" || "${HOST_NAME}" == "syslog2" ]] then TYPE=SYSLOGSERVER fi #------------------------------------------------ # usage () #------------------------------------------------ usage() { echo "Usage: (" "|-v|-f)" echo "\tCustomize AIX server" echo "\t-v: verbose (default yes)" echo "\t-q: ask for every changes" echo "\t-f: apply changes" } #------------------------------------------ confirm () { # ask for a confirmation for each change if [ "$query" == "none" ] then execute=false echo "Change [y/n] ?"; read answer case "$answer" in y|Y|yes) execute=true ;; *) execute=false ;; esac fi } #------------------------------------------ lsrights () { # print the file or folder rights value=$1 if [ -d $value ] then ls -ld $value | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf("%0o ",k);print}' | awk '{print $1}' else if [ -f $value ] then begin=$(echo $value | rev | cut -d'/' -f2- | rev) if [ "$begin" == "" ] then begin="/" fi end=$(echo $value | rev | cut -d'/' -f1 | rev) ls -l $begin | sed 's/$/|/' | grep " $end|" | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf("%0o ",k);print}' | awk '{print $1}' else echo "ERROR" fi fi } #------------------------------------------ filesystem () { # Create filesystems echo "#************************" echo "#** Create filesystems **" echo "#************************" echo "\n" if [ "$TYPE" == "VIOS" ] then set -A lv_name corelv set -A fs_name "/var/core" set -A fs_size 1G else set -A lv_name rootlv corelv set -A fs_name "/root" "/var/core" set -A fs_size 256M 1G fi echo "# Creating FS ${fs_name[*]}" echo "#========================" num=${#lv_name[*]} COPIES_LV=`lslv hd5 | grep COPIES | awk '{ print $2 }'` cnt=0 while [ $cnt -lt $num ] do df "${fs_name[$cnt]}" 2> /dev/null | grep "${fs_name[$cnt]}" | grep -v Filesystem > /dev/null 2>&1 if [ $? -ne 0 ] then printf "\E[31;1m""# Creating filesystem ${fs_name[$cnt]}"" $1\E[0m\n" confirm; ($execute) && mklv -t jfs2 -c $COPIES_LV -y ${lv_name[$cnt]} rootvg ${fs_size[$cnt]} ($execute) && crfs -v jfs2 -m "${fs_name[$cnt]}" -d ${lv_name[$cnt]} -Ayes -a log=INLINE ($execute) && mount "${fs_name[$cnt]}" else printf "\E[32;1m""# Filesystem ${fs_name[$cnt]} exist OK"" $1\E[0m\n" fi let cnt="($cnt +1)" done if [ ! -d ${script_path_log} ] then printf "\E[31;1m""# Creating directory ${script_path_log}"" $1\E[0m\n" confirm; ($execute) && mkdir -p ${script_path_log} else printf "\E[32;1m""# Directory ${script_path_log} exist OK"" $1\E[0m\n" fi if [ "$TYPE" == "VIOS" ] then if [ ! -d /home/padmin/vios_advisor ] then mkdir /home/padmin/vios_advisor chown padmin.staff /home/padmin/vios_advisor fi if [ -d /mksys ] then if [ $(ls -l / | grep mksysb | grep -q padmin; echo $?) -ne 0 ] then chown padmin /mksysb fi fi fi if [ -d /var/core ] then if [ $(lsrights /var/core) != "777" ] then printf "\E[31;1m""# Change /var/core rights"" $1\E[0m\n" confirm; ($execute) && chmod 777 /var/core else printf "\E[32;1m""# Rights on /var/core OK"" $1\E[0m\n" fi else printf "\E[32;1m""# /var/core doesn't exist ERROR"" $1\E[0m\n" fi # Change base filesystem to a minimum size echo "\n" echo "# Change base filesystem to a minimum size if needed" echo "#========================" set -A fs_name "/" "/tmp" "/var" "/home" "/opt" "/root" "/var/core" set -A fs_size 512M 1G 2G 512M 2G 512M 1G num=${#fs_name[*]} cnt=0 while [ $cnt -lt $num ] do if [ $(df -m "${fs_name[$cnt]}" 2>/dev/null | grep -q "${fs_name[$cnt]}"; echo $?) -eq 0 ] then val1=$(echo ${fs_size[$cnt]} | sed 's/T/\*1048576/' |sed 's/G/\*1024/' | sed 's/M//') val=$(echo "scale=0;$val1" | bc) sz=$(df -m "${fs_name[$cnt]}" | grep '^/dev/' | grep -v Filesystem | awk '{print $2}' | cut -d"." -f1) if [ "$sz" -lt "$val" ] then printf "\E[31;1m""# chfs -a size=${fs_size[$cnt]} ${fs_name[$cnt]}"" $1\E[0m\n" confirm; ($execute) && chfs -a size=${fs_size[$cnt]} ${fs_name[$cnt]} else printf "\E[32;1m""# Filesystem ${fs_name[$cnt]} size OK"" $1\E[0m\n" fi fi let cnt="($cnt +1)" done echo "\n" } #------------------------------------------ system () { # Change system parameters echo "#******************************" echo "#** Change system parameters **" echo "#******************************" echo echo "# Root settings" echo "#========================" usr=root if [ "$TYPE" != "VIOS" ] then set -A user_param home fsize data shell set -A user_value "/root" "-1" "-1" "/usr/bin/ksh93" else set -A user_param pgrp fsize data set -A user_value "system" "-1" "-1" fi num=${#user_param[*]} cnt=0 while [ $cnt -lt $num ] do if [ $(lsuser -a "${user_param[$cnt]}" $usr | cut -d'=' -f2) != "${user_value[$cnt]}" ] then printf "\E[31;1m""chuser ${user_param[$cnt]}=${user_value[$cnt]} $usr"" $1\E[0m\n" confirm; ($execute) && chuser "${user_param[$cnt]}"="${user_value[$cnt]}" $usr else printf "\E[32;1m""# Parameter for $usr ${user_param[$cnt]} OK"" $1\E[0m\n" fi let cnt="($cnt +1)" done # val=$(lscore -d | sed 's/\ //g' | grep corefilelocation | cut -d':' -f2) if [ "$val" != "/var/core" ] then printf "\E[31;1m""chcore -c on -p on -l /var/core -n on -d"" $1\E[0m\n" confirm; ($execute) && chcore -c on -p on -l /var/core -n on -d else printf "\E[32;1m""# Redirect core to /var/core OK"" $1\E[0m\n" fi # val=$(syscorepath -g) if [ "$val" != "/var/core" ] then printf "\E[31;1m""# syscorepath -p /var/core"" $1\E[0m\n" confirm; ($execute) && syscorepath -p /var/core else printf "\E[32;1m""# Redirect system core to /var/core OK"" $1\E[0m\n" fi if [ $(lsitab syscore > /dev/null 2>&1; echo $?) -ne 0 ] then printf "\E[31;1m""# syscorepath needs to be set at startup"" $1\E[0m\n" confirm; ($execute) && mkitab "syscore:23:once:/etc/rc.syscore > /dev/console 2>&1" ($execute) && if [ ! -f /etc/rc.syscore ] then cat > /etc/rc.syscore << EOF # Set core path for system if [ -d /var/core ] then syscorepath -p /var/core if [ \$? -eq 0 ] then echo "syscorepath OK" fi else echo "**** ERROR /var/core doesn t exist" fi EOF chmod u+x /etc/rc.syscore fi else printf "\E[32;1m""# syscorepath is set OK"" $1\E[0m\n" fi # if [ "$TYPE" != "VIOS" ] then if [ ! -f ~root/.profile ] then printf "\E[31;1m""# Create /root/.profile"" $1\E[0m\n" confirm; ($execute) && cat > /root/.profile << EOF EDITOR=/usr/bin/vi HOSTNAME=\$(hostname) PS1="[\\\$LOGNAME@\\\$HOSTNAME]\\\$PWD# " export EDITOR HOSTNAME PS1 if [ \$(tty | awk '{print \$1}' | egrep -q "Global|pts" ; echo \$?) -eq 0 ] then stty erase ^? fi export PATH=/usr/local/sbin:\$PATH export MANPATH=/usr/share/man:/usr/lpp/X11/man:/opt/freeware/man:\$MANPATH . ~root/.profile_root # Specific (add your custom entries) EOF else printf "\E[32;1m""# File /root/.profile exist OK"" $1\E[0m\n" fi if [ ! -f /root/.profile_root ] then printf "\E[31;1m""# Create /root/.profile_root"" $1\E[0m\n" confirm; ($execute) && cat > /root/.profile_root << EOF # version 1.3 2019-02 set -o vi alias ll='ls -lsa' alias lll='/usr/linux/bin/ls -lsa --color=auto' alias lsvscsi='echo "cvai" | kdb | grep vscsi' alias lsvfcs='echo "vfcs" | kdb | grep fcs' alias lsdisk='${script_path}/pcmpathq.sh' EOF else printf "\E[32;1m""# File /root/.profile_root exist OK"" $1\E[0m\n" fi if [ ! -f /root/.bashrc ] then printf "\E[31;1m""# Create /root/.bashrc"" $1\E[0m\n" confirm; ($execute) && cat > /root/.bashrc << EOF EDITOR=/usr/bin/vi HOSTNAME=\$(hostname) PS1="[\\\$LOGNAME@\\\$HOSTNAME]\\\$PWD# " export EDITOR HOSTNAME PS1 if [ \$(tty | awk '{print \$1}' | egrep -q "Global|pts" ; echo \$?) -eq 0 ] then stty erase ^? fi export PATH=/usr/local/sbin:\$PATH export MANPATH=/usr/share/man:/usr/lpp/X11/man:/opt/freeware/man:\$MANPATH . ~root/.profile_root echo "BASH" # Specific (add your custom entries) EOF else printf "\E[32;1m""# File /root/.bashrc exist OK"" $1\E[0m\n" fi fi echo "\n" echo "# Check users settings" echo "#========================" if [ $(pwdck -n ALL > /dev/null 2>&1; echo $?) -ne 0 ] then printf "\E[31;1m""# pwdck -y ALL"" $1\E[0m\n" confirm; ($execute) && pwdck -y ALL else printf "\E[32;1m""# pwdck OK"" $1\E[0m\n" fi if [ $(grpck -n ALL > /dev/null 2>&1; echo $?) -ne 0 ] then printf "\E[31;1m""# grpck -y ALL"" $1\E[0m\n" confirm; ($execute) && grpck -y ALL else printf "\E[32;1m""# grpck OK"" $1\E[0m\n" fi echo "\n" if [ $(grep -q "NUM_PARALLEL_LPS" /etc/environment; echo $?) -ne 0 ] then printf "\E[31;1m""# Add parameter NUM_PARALLEL_LPS to /etc/environment"" $1\E[0m\n" confirm; ($execute) && cat >> /etc/environment << EOF # VG mirroring parallelism NUM_PARALLEL_LPS=12 EOF else printf "\E[32;1m""# Parameter NUM_PARALLEL_LPS to /etc/environment OK"" $1\E[0m\n" fi echo "# System settings" echo "#========================" if [ $(grep -q "TZ=Europe/Luxembourg" /etc/environment; echo $?) -ne 0 ] then printf "\E[31;1m""# Time zone need to be changed"" $1\E[0m\n" confirm; ($execute) && chtz 'Europe/Luxembourg' else printf "\E[32;1m""# Time Zone OK"" $1\E[0m\n" fi if [ "$(lsattr -El sys0 -a maxuproc | awk '{print $2}')" -lt "8192" ] then printf "\E[31;1m""# Changing max process per user"" $1\E[0m\n" confirm; ($execute) && chdev -l sys0 -a maxuproc=8192 else printf "\E[32;1m""# Max number of process per user OK"" $1\E[0m\n" fi if [ "$(lsattr -El sys0 -a max_logname | awk '{print $2}')" -lt "256" ] then printf "\E[31;1m""# Changing max logname"" $1\E[0m\n" confirm; ($execute) && chdev -l sys0 -a max_logname=256 else printf "\E[32;1m""# Max_logname OK"" $1\E[0m\n" fi if [ "$(lsattr -El sys0 -a ncargs | awk '{print $2}')" -lt "1024" ] then printf "\E[31;1m""# Changing ncargs maximum argument in a line"" $1\E[0m\n" confirm; ($execute) && chdev -l sys0 -a ncargs=1024 else printf "\E[32;1m""# ncargs OK"" $1\E[0m\n" fi if [ `echo $(lsattr -El iocp0;lsdev -Cc iocp ) | tr ' ' '\n' | grep -i available | wc -l | awk '{print $1}'` != "2" ] then chdev -l iocp0 -a autoconfig='available' mkdev -l iocp0 fi if [ "$TYPE" == "VIOS" ] then cat > /tmp/exclude.tmp << EOF /.rhosts /etc/niminfo /var/vio/CM/DB/ ^./tmp/ ^./mnt/ ^./audit/ ^./mksysb/ ^./usr/sysload/*.idx ^./usr/sysload/*.dat ^./var/vio/VMLibrary/ ^./home/padmin/vios_advisor/ EOF else cat > /tmp/exclude.tmp << EOF ^./mnt/ ^./tmp/ ^./wpars/ ^./audit/ ^./mksysb/ ^./var/core/ ^./tftpboot/ ^./software/ ^./usr/sys/inst.images/ ^./var/adm/nfsv4/sm4.grace EOF fi if [ -f /etc/exclude.rootvg ] then sdiff -s /etc/exclude.rootvg /tmp/exclude.tmp | grep '>' | awk -F'>' '{print $2}' | awk '{print $1}' > /tmp/exclude.diff if [ -s /tmp/exclude.diff ] then printf "\E[31;1m""# Add entries into /etc/exclude.rootvg"" $1\E[0m\n" confirm; ($execute) && cat /tmp/exclude.diff >> /etc/exclude.rootvg else printf "\E[32;1m""# File /etc/exclude.rootvg exist OK"" $1\E[0m\n" fi rm /tmp/exclude.diff else printf "\E[31;1m""# Creating file /etc/exclude.rootvg"" $1\E[0m\n" confirm; ($execute) && cp /tmp/exclude.tmp /etc/exclude.rootvg fi rm /tmp/exclude.tmp echo "\n" echo "\n" echo "# Check /etc/profile" echo "#========================" # Check /etc/profile cat > /tmp/profile.tmp << EOF HOSTNAME=\$(/usr/bin/hostname -s) PS1="[\\\$LOGNAME@\\\$HOSTNAME]\\\$PWD$ " export PS1 EDITOR=/usr/bin/vi export EDITOR export EXTENDED_HISTORY=ON export HISTSIZE=10000 alias ll='ls -lsa' EOF cat /etc/profile | grep -v "trap 1 2 3" | sed '/^$/d' > /tmp/profile.tmp2 sdiff -s /tmp/profile.tmp2 /tmp/profile.tmp | grep -v '<' | grep '>' | cut -d'>' -f2- | sed 's/^\ *//g' | sed '/^$/d' > /tmp/profile.diff sdiff -s /tmp/profile.tmp2 /tmp/profile.tmp | grep -v '<' | grep '|' | cut -d'|' -f2- | sed 's/^\ *//g' | sed '/^$/d' >> /tmp/profile.diff if [ -s /tmp/profile.diff ] then printf "\E[31;1m""# Add entries into /etc/profile"" $1\E[0m\n" confirm; ($execute) && cat /etc/profile | grep -v "trap 1 2 3" > /tmp/profile.tmp1;($execute) && mv /tmp/profile.tmp1 /etc/profile;($execute) && cat /tmp/profile.diff >> /etc/profile; ($execute) && printf '\ntrap 1 2 3\n' >> /etc/profile; ($execute) && chmod 555 /etc/profile; ($execute) && chown bin.bin /etc/profile else printf "\E[32;1m""# File /etc/profile OK"" $1\E[0m\n" fi rm /tmp/profile.diff rm /tmp/profile.tmp* echo "\n" } #------------------------------------------ netsvc () { # Change /etc/netsvc.conf echo "#**********************************" echo "#** Change file /etc/netsvc.conf **" echo "#**********************************" echo echo "# Configure /etc/netsvc.conf" echo "#========================" if [ $(cat /etc/netsvc.conf | grep -v "^#" | egrep "hosts|=|local|bind" >/dev/null; echo $?) -ne 0 ] then printf "\E[31;1m""# Add search order into /etc/netsvc.conf"" $1\E[0m\n" confirm; ($execute) && cat /etc/netsvc.conf | grep "^#" > /etc/netsvc.conf.${p_id} ($execute) && echo "hosts=local,bind4" >> /etc/netsvc.conf.${p_id} ($execute) && mv /etc/netsvc.conf.${p_id} /etc/netsvc.conf else printf "\E[32;1m""# Parameter ORDER to /etc/netsvc.conf OK"" $1\E[0m\n" fi echo "\n" } #------------------------------------------ resolv () { # Change /etc/resolv.conf echo "#**********************************" echo "#** Change file /etc/resolv.conf **" echo "#**********************************" echo echo "# Configure /etc/resolv.conf" echo "#========================" status=0 if [ ! -f /etc/resolv.conf ] then touch /etc/resolv.conf fi for server in $(echo ${dns_server} | sed 's/,/\ /g') do if [ $(cat /etc/resolv.conf | grep "nameserver" | grep -q "${server}"; echo $?) -ne 0 ] then printf "\E[31;1m""# Add server into /etc/resolv.conf"" $1\E[0m\n" confirm; ($execute) && cp /etc/resolv.conf /etc/resolv.conf.${p_id} ($execute) && echo "nameserver ${server}" >> /etc/resolv.conf ((status = status +1)) fi done if [ "${dns_domain}" != "" ] then if [ $(cat /etc/resolv.conf | grep "domain" | egrep -q "${dns_domain}"; echo $?) -ne 0 ] then printf "\E[31;1m""# Add domain into /etc/resolv.conf"" $1\E[0m\n" confirm; ($execute) && echo "domain ${dns_domain}" >> /etc/resolv.conf ((status = status +1)) fi fi search=$(echo ${dns_search} | sed 's/,/\ /g' | tr -s " ") if [ "${dns_search}" != "" ] then val=$(echo $search | sed 's/\ /|/g') if [ $(cat /etc/resolv.conf | grep search | egrep -q "${val}"; echo $?) -ne 0 ] then printf "\E[31;1m""# Add search into /etc/resolv.conf"" $1\E[0m\n" confirm; ($execute) && echo "search ${search}" >> /etc/resolv.conf ((status = status +1)) fi fi if [ "${dns_options}" != "" ] then for option in $(echo ${dns_options} | tr ';' '\n' | sed 's/\ /|/g') do if [ $(cat /etc/resolv.conf | sed 's/'"$(echo '\011')"'/\ /g' | tr -s ' ' | sed 's/\ /|/g' | grep -q "$option"; echo $?) -ne 0 ] then printf "\E[31;1m""# Add option $option into /etc/resolv.conf"" $1\E[0m\n" confirm; ($execute) && echo $option | sed 's/|/\ /g' >> /etc/resolv.conf ((status = status +1)) fi done fi if [ "$status" -eq "0" ] then printf "\E[32;1m""# Parameters in /etc/resolv.conf OK"" $1\E[0m\n" fi echo "\n" } #------------------------------------------ nfsv4 () { # Change /etc/nfs/local_domain echo "#***************************************" echo "#** Change file /etc/nfs/local_domain **" echo "#***************************************" echo echo "# Configure /etc/nfs/local_domain" echo "#========================" if [ $(chnfsdom | cut -d ':' -f2 | grep -q "$nfsv4dom"; echo $?) -eq 0 ] then printf "\E[32;1m""# NFSv4 domain /etc/nfs/local_domain OK"" $1\E[0m\n" else printf "\E[31;1m""# Change NFSv4 domain"" $1\E[0m\n" confirm; ($execute) && chnfsdom $nfsv4dom ; ($execute) && stopsrc -g nfs; ($execute) && startsrc -g nfs fi } #------------------------------------------ sendmail () { # Change /etc/sendmail.cf echo "#**********************************" echo "#** Change file /etc/sendmail.cf **" echo "#**********************************" echo echo "# Configure /etc/sendmail.cf" echo "#========================" if [ "$(grep '^DS' /etc/sendmail.cf | grep -v '^#' | sed 's/^DS//' | awk '{print $1}')" != "${sendmail_ds}" ] then printf "\E[31;1m""# Add SMTP server to file /etc/sendmail.cf"" $1\E[0m\n" confirm; ($execute) && cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.${p_id} ($execute) && cat /etc/mail/sendmail.cf | sed "s/^DS/DS${sendmail_ds}/" > /tmp/sendmail.cf.tmp if [ "${sendmail_dj}" != "" ] then ($execute) && cat /tmp/sendmail.cf.tmp | perl -pe "s/^#Dj*./$&\nDj${sendmail_dj}/" > /etc/mail/sendmail.cf else ($execute) && mv /tmp/sendmail.cf.tmp /etc/mail/sendmail.cf fi else printf "\E[32;1m""# Parameter DS from /etc/sendmail.cf OK"" $1\E[0m\n" fi echo "\n" } #------------------------------------------ syslog () { # Change /etc/syslog.conf echo "#**********************************" echo "#** Change file /etc/syslog.conf **" echo "#**********************************" echo echo "# Configure /etc/syslog.conf" echo "#========================" ($execute) && cp /etc/syslog.conf /etc/syslog.conf.${p_id} cat > /tmp/syslog.tmp << EOF *.emerg /var/log/syslog/emerg.log rotate size 500k files 4 compress *.alert /var/log/syslog/alert.log rotate size 500k files 4 compress *.crit /var/log/syslog/crit.log rotate size 500k files 4 compress *.err /var/log/syslog/error.log rotate size 500k files 4 compress *.warning /var/log/syslog/warning.log rotate size 500k files 4 compress *.notice /var/log/syslog/notice.log rotate size 500k files 4 compress *.info /var/log/syslog/info.log rotate size 500k files 4 compress *.debug /var/log/syslog/debug.log rotate size 500k files 4 compress auth,authpriv.debug /var/log/syslog/auth.log rotate size 1m files 4 compress EOF if [ "$TYPE" != "SYSLOGSERVER" ] then cat >> /tmp/syslog.tmp << EOF auth,authpriv.debug @syslogserver *.warning @syslogserver EOF fi status=0 for line1 in $(cat /tmp/syslog.tmp | awk '{print $2}') do if [ $(cat /etc/syslog.conf | grep -v '^#' | grep -q "$line1"; echo $?) -ne 0 ] then printf "\E[31;1m""# Add line $line1 into /etc/syslog.conf"" $1\E[0m\n" confirm; ($execute) && cat /tmp/syslog.tmp | sed 's/\ /;/2' | sed 's/$/;/' | grep "$line1;" | sed 's/;/\ /g' >> /etc/syslog.conf ((status = status +1)) fi done if [ "$status" -eq "0" ] then printf "\E[32;1m""# Parameters in /etc/syslog.conf OK"" $1\E[0m\n" fi for syslog_path in $(cat /etc/syslog.conf | grep -v "^#" | awk '{print $2}' | grep '/' | rev | cut -d'/' -f2- | rev | sort -u) do if [ ! -d ${syslog_path} ] then mkdir -p ${syslog_path} fi done for file1 in $(cat /etc/syslog.conf | grep -v "^#" | awk '{print $2}' | grep '/' | sed '/^$/d') do if [ ! -f ${file1} ] then touch $file1 fi done if [ $(grep "^start " /etc/rc.tcpip | grep -q "syslogd"; echo $?) -ne 0 ] then printf "\E[31;1m""# Enable syslogd"" $1\E[0m\n" confirm; ($execute) && chrctcp -S -a syslogd fi if [ "$TYPE" != "SYSLOGSERVER" ] then if [ $(odmget -q subsysname="syslogd" SRCsubsys | grep cmdargs | cut -d'=' -f2- | grep '\-r' | grep '\-n' > /dev/null 2>&1; echo $?) -ne 0 ] then printf "\E[31;1m""# Activate syslogd as client"" $1\E[0m\n" confirm; ($execute) && chssys -s syslogd -a "-r -n" else printf "\E[32;1m""# Syslog started with option -r and -n OK"" $1\E[0m\n" fi fi echo "\n" } #------------------------------------------ ntp () { # Change /etc/ntp.conf echo "#**********************************" echo "#** Change file /etc/ntp.conf **" echo "#**********************************" echo echo "# NTP Configuration" echo "#========================" # Add NTP servers for Time synchronization if [ "$TYPE" == "VIOS" ] then ntpdir=/home/padmin/config else ntpdir=/etc fi ntpsrv=$(echo ${ntp_server} | sed 's/,/\ /g' | tr -s ' ' | sed 's/\ /|/g') if [ $(cat $ntpdir/ntp.conf | grep -v '^#' | egrep -q "$ntpsrv"; echo $?) -ne 0 ] then printf "\E[31;1m""# NTP need to be updated"" $1\E[0m\n" confirm; ($execute) && cp $ntpdir/ntp.conf /tmp/ntp.conf.${p_id} ($execute) && cat /tmp/ntp.conf.${p_id} | egrep "^#|/" > $ntpdir/ntp.conf for srv in $(echo ${ntp_server} | sed 's/,/\ /g' | tr -s ' ') do ($execute) && echo "server $srv" >> $ntpdir/ntp.conf done else printf "\E[32;1m""# NTP config OK"" $1\E[0m\n" fi if [ $(grep "^start " /etc/rc.tcpip | grep -q "xntpd"; echo $?) -ne 0 ] then printf "\E[31;1m""# Enable xntpd"" $1\E[0m\n" confirm; ($execute) && chrctcp -S -a xntpd fi echo "\n" } #------------------------------------------ rpm_installed () { # Check rpm installed echo "#**********************************" echo "#** Check RPM packages installed **" echo "#**********************************" echo echo "# RPM packages" echo "#========================" RPMS=$(rpm -qa | sort) for pkg in bash lsof coreutils logrotate sed yum do if [ $(echo $RPMS | grep -q "${pkg}-"; echo $?) -eq 0 ] then printf "\E[32;1m""# RPM package : $pkg installed OK"" $1\E[0m\n" else if [ $(lslpp -Lc | cut -d':' -f1 | cut -d'.' -f1 | sort -u | grep -q "^${pkg}"; echo $?) -eq 0 ] then printf "\E[32;1m""# RPM package : $pkg installed OK"" $1\E[0m\n" else printf "\E[31;1m""# RPM package : $pkg not found"" $1\E[0m\n" fi fi done echo "\n" } ########################################### # MAIN ########################################### # Read and check scripts arguments execute=false #preview only while [ $# -gt 0 ] do case "$1" in -f) execute=true ;; -v) execute=false ;; -q) query=none ;; -h|help) usage exit 1;; esac shift done filesystem system netsvc resolv sendmail syslog ntp nfsv4 rpm_installed for file1 in "/.rhosts" "/save_bosinst.data_file" "/.SPOT" "/.rnd" do [ -e $file1 ] && rm -r $file1 done if [ "$TYPE" != "VIOS" ] then for file1 in "/.sh_history" "/.vi_history" "/smit*" do [ -e $file1 ] && rm -r $file1 done fi