My customization:
mklv -t jfs2 -y rootlv rootvg 512M crfs -v jfs2 -m /root -d rootlv -Ayes mount /root chuser home=/root shell=/usr/bin/ksh93 root chuser fsize=-1 data=-1 root Then logout an login
rm -r /.SPOT /.sh_history /.vi_history /smit*
chdev -l sys0 -a ngroups_allowed=2048 chdev -l sys0 -a max_logname=256 chdev -l sys0 -a ncargs=1024 chdev -l sys0 -a maxuproc=16384
cat > ~root/.profile_root << EOF if [ "\$(whoami)" != "root" ]; then export PS1="[\$(whoami)@\$(/usr/bin/hostname -s)]\\\$PWD$ " else export PS1="[\$(whoami)@\$(/usr/bin/hostname -s)]\\\$PWD# " fi set -o vi alias lsvscsi='echo "cvai" | kdb | grep vscsi' alias lsvfcs='echo "vfcs" | kdb | grep fcs' alias ll='ls -lsa' [ -x /usr/linux/bin/ls ] && alias lll='/usr/linux/bin/ls -lsa --color' # needs coreutils rpm package EOF
cat > ~root/.profile <<EOF EDITOR=/usr/bin/vi HOSTNAME=\$(hostname) set -o vi . ~root/.profile_root # If real TTY then allows BACKSPACE if [ \$(tty | awk '{print \$1}' | egrep -q "Global|pts" ; echo \$?) -eq 0 ] then stty erase ^? fi EOF
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 . ~root/.profile_root echo "BASH" # Specific (add your custom entries) EOF
echo "DTSOURCEPROFILE=true" > ~root/.dtprofile
Add the following lines to /etc/profile:
# cat /etc/profile .... HOSTNAME=\$(/usr/bin/hostname -s) PS1="[\$LOGNAME@\$HOSTNAME]\$PWD# " export PS1 EDITOR=/usr/bin/vi export EDITOR EXTENDED_HISTORY=ON HISTSIZE=10000 HISTTIMEFORMAT="%F %T " export EXTENDED_HISTORY HISTSIZE HISTTIMEFORMAT alias ll='ls -lsa' export DSM_LOG=/tmp # centralize all TSM logs dsmj.log trap 1 2 3
cat >> /etc/environment << EOF # VG mirroring parallelism NUM_PARALLEL_LPS=12 EOF
Ex: TZ=Europe/Luxembourg
Ex:
server 1.2.3.4 server 2.5.6.8 domain gggg.com search ggg.com aaa.com bbb.be
echo "hosts=local,bind4" >> /etc/netsvc.conf
::1 loopback localhost # needed for sendmail (IPV6 local resolution)
server 1.2.3.4 prefer server 3.4.5.6
Activate NTP service:
chrctcp -S -a xntpd stopsrc -s xntpd; startsrc -s xntpd
You can have more system logs than the errlog (errpt), you can activate syslog daemon. Logs files are text fomat.
Add the following lines in /etc/syslog.conf
[aix-srv@root] /root# cat /etc/syslog.conf *.emerg /var/log/syslog/emerg.log rotate size 200k files 4 compress *.alert /var/log/syslog/alert.log rotate size 200k files 4 compress *.crit /var/log/syslog/crit.log rotate size 200k files 4 compress *.err /var/log/syslog/error.log rotate size 200k 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 500k files 4 compress
Create empty files for log, they won't be automatically created:
[aix-srv@root] /root# mkdir -p /var/log/syslog [aix-srv@root] /root# for file in $(cat /etc/syslog.conf | grep -v "^#" | awk '{print $2}') do touch $file done
Uncomment the entry for syslogd in /etc/rc.tcpip, or use the following command; then restart syslod:
[aix-srv@root] /root# chrctcp -S -a syslogd [aix-srv@root] /root# stopsrc -s syslogd; startsrc -s syslogd
To be able to recover your server, even if it never happens, customize your system image to store the minimum needed Use the file /etc/exclude.rootvg (take care to syntax)
/tmp/ ^./mnt/ ^./mksysb/ ^./var/core/
Command to backup: mksysb -i -e /mksysb_images/node1
mklv -tjfs2 -y corelv rootvg 1G crfs -vjfs2 -d corelv -m /var/core -Ayes -a log=INLINE mount /var/core chmod 777 /var/core chcore -c on -p on -l /var/core -n on -d syscorepath -p /var/core
# bash rpm -Uhv bash-4.3-16.aix5.1.ppc.rpm # lsof rpm -Uhv lsof-4.88-1.aix7.1.ppc.rpm # coreutils rpm -Uhv libgcc-4.8.3-1.aix7.1.ppc.rpm rpm -Uhv libstdc++-4.8.3-1.aix7.1.ppc.rpm rpm -Uhv gettext-0.10.40-8.aix5.2.ppc.rpm rpm -Uhv info-5.1-2.aix5.1.ppc.rpm rpm -Uhv gmp-6.0.0a-1.aix5.1.ppc.rpm rpm -Uhv libiconv-1.14-2.aix5.1.ppc.rpm rpm -Uhv coreutils-8.24-1.aix5.1.ppc.rpm # logrotate rpm -Uhv popt-1.16-1.aix5.1.ppc.rpm rpm -Uhv logrotate-3.8.2-1.aix5.1.ppc.rpm # rsync rpm -Uhv rsync-3.1.1-1.aix5.1.ppc.rpm # tar rpm -Uhv tar-1.28-1.aix5.1.ppc.rpm # zip rpm -Uhv bzip2-1.0.6-1.aix5.1.ppc.rpm rpm -Uhv unzip-6.0-2.aix5.1.ppc.rpm rpm -Uhv zip-3.0-1.aix5.1.ppc.rpm # grep - sed rpm -Uhv sed-4.2.2-1.aix5.1.ppc.rpm rpm -Uhv zlib-1.2.8-1.aix5.1.ppc.rpm rpm -Uhv readline-6.3-5.aix5.1.ppc.rpm rpm -Uhv pcre-8.36-1.aix5.1.ppc.rpm rpm -Uhv grep-2.21-1.aix5.1.ppc.rpm # vnc server rpm -Uhv libjpeg-9a-1.aix5.1.ppc.rpm rpm -Uhv tightvnc-server-1.3.10-2.aix5.1.ppc.rpm # tmux / screen (background applications) + UTF8 locales installp -agXY -d ./ bos.loc.utf.EN_US rpm -Uhv tmux screen
Minimum NO (Network Options) options for gigabit ethernet:
no -p -o udp_recvspace="655360" no -p -o udp_sendspace="65536" no -p -o tcp_recvspace="262144" no -p -o tcp_sendspace="262144" no -p -o udp_pmtu_discover="0" no -p -o tcp_pmtu_discover="0" no -p -o rfc1323="1" # For linux NFS mount # nfso -p -o portcheck="1" # nfso -p -o nfs_use_reserved_ports="1"
Info:
to connect to VNC, start a session (vncserver :1) on session 1 for example, use a VNC viewer and select <IP_address>:<session_number>, or http://<IP_address>:5800+<session_number>
# cat .env
# global variables for all scripts export binpath=/root/scripts export sn=`basename $0 | cut -d. -f1` export HOSTNAME=`/usr/bin/hostname` export logpath=/root/scripts/logs export logname=$logpath/$sn.log export configfile=$binpath/$sn.cfg export destination="test@gmail.com"
# cat mksysb.sh
#!/bin/ksh93 #set -x ############################################# #@(#) create mksysb on NIM server ############################################# # version 1.0 21-02-2019 # version 1.1 07-2023 Add timeout and check proc ############################################# dir=`dirname $0` . $dir/.env NUM=`date +%y%m%d%H%M` LOCAL_PATH=/mnt VERSION_EXIST=1 REMOTE_BACKUP_SERVER=nimprod REMOTE_PATH=/export/mksysb UMOUNT=1 HOSTNAME=$(hostname -s | tr 'A-Z' 'a-z') PID=$$ TIMEOUTPROC=3600 #--------------------- check_running () { echo "########################################" echo `date`" : Begin of "$SN echo $PID if [ $(ps -ef | grep -v grep | grep -v "$PID" | grep -v tail | grep -q mksysb; echo $?) -eq "0" ] then echo "### Process mksysb is still running" ps -ef | grep -v grep | grep mksysb mailx -s "Mksysb $SN failed to start on AIX $HOSTNAME " $destination < $logname exit 1 else echo "### Process mksysb is not Running --> OK" echo "Starting mksysb" fi } #--------------------- create_mksysb () { echo "########################################" echo `date`" : Begin of "$SN if [ "$VERBOSE_LOGGING" = "high" ] then set -x fi if [ "$HOSTNAME" == "${REMOTE_BACKUP_SERVER}" ] then MKSYSB_PATH=$REMOTE_PATH else MKSYSB_PATH=$LOCAL_PATH mount -o vers=4,soft,intr $REMOTE_BACKUP_SERVER:$REMOTE_PATH $MKSYSB_PATH if [ $? -ne 0 ] then echo "NFS mount failed" exit 1 fi UMOUNT=0 fi # Remove old mksysb NOB=`ls $MKSYSB_PATH | grep $HOSTNAME | wc -l | awk '{print $1}'` while [[ "$NOB" -ge $VERSION_EXIST ]] do FILE=`ls -rt $MKSYSB_PATH | grep "${HOSTNAME}_" | head -1` if [ -f $MKSYSB_PATH/$FILE ] then echo "Removing mksysb $FILE" rm -f $MKSYSB_PATH/$FILE fi let NOB=NOB-1 done # make new backup echo "Starting backup of `hostname`" echo "Backup of / and exclude files from /etc/exclude.rootvg" /opt/freeware/bin/timeout $TIMEOUTPROC mksysb -e -i -X ${MKSYSB_PATH}/${HOSTNAME}_mksysb RC=$? if [ $RC -gt 0 ] then echo $RC mailx -s "Mksysb $SN failed on AIX $HOSTNAME " $destination < $logname fi echo "Mksysb size in GB" du -sg ${MKSYSB_PATH}/${HOSTNAME}_mksysb if [ $UMOUNT -eq 0 ] then umount $MKSYSB_PATH fi echo `date`" : End of "$SN } ###################### main () { echo "########################################" echo `date`" : Begin of "$SN check_running create_mksysb } main > $logname 2>&1
******************************************************************************* * * * IT IS AN OFFENSE TO CONTINUE WITHOUT PROPER AUTHORIZATION. * * * * This system is for the use of authorized users only. Individuals using * * this computer system without authority, or in excess of their authority, * * are subject to having all of their activities on this system monitored and * * recorded by system personnel. In the course of monitoring individuals * * improperly using this system, or in the course of system maintenance, the * * activities of authorized users may also be monitored. Anyone using this * * system expressly consents to such monitoring and is advised that if such * * monitoring reveals possible evidence of criminal activity, system * * personnel may provide the evidence of such monitoring to law enforcement * * officials. * * * *******************************************************************************