This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
aix:custom_aix [2021/01/01 21:21] 127.0.0.1 external edit |
aix:custom_aix [2024/08/21 17:29] (current) manu |
||
---|---|---|---|
Line 4: | Line 4: | ||
My customization: | My customization: | ||
<cli prompt='#'> | <cli prompt='#'> | ||
- | mklv -t jfs2 -y rootlv rootvg 128M | + | mklv -t jfs2 -y rootlv rootvg 512M |
crfs -v jfs2 -m /root -d rootlv -Ayes | crfs -v jfs2 -m /root -d rootlv -Ayes | ||
mount /root | mount /root | ||
Line 22: | Line 22: | ||
chdev -l sys0 -a max_logname=256 | chdev -l sys0 -a max_logname=256 | ||
chdev -l sys0 -a ncargs=1024 | chdev -l sys0 -a ncargs=1024 | ||
- | chdev -l sys0 -a maxuproc=8192 | + | chdev -l sys0 -a maxuproc=16384 |
</cli> | </cli> | ||
Line 48: | Line 48: | ||
set -o vi | set -o vi | ||
- | alias ll='ls -lsa' | ||
. ~root/.profile_root | . ~root/.profile_root | ||
# If real TTY then allows BACKSPACE | # If real TTY then allows BACKSPACE | ||
Line 61: | Line 60: | ||
cat > ~root/.bashrc << EOF | cat > ~root/.bashrc << EOF | ||
EDITOR=/usr/bin/vi | EDITOR=/usr/bin/vi | ||
- | HOSTNAME=\$(hostname) | + | HOSTNAME=$(hostname) |
- | set -o vi | + | PS1="[\$LOGNAME@\$HOSTNAME]\$PWD# " |
+ | export EDITOR HOSTNAME PS1 | ||
+ | |||
+ | if [ $(tty | awk '{print $1}' | egrep -q "Global|pts" ; echo $?) -eq 0 ] | ||
+ | then | ||
+ | stty erase ^? | ||
+ | fi | ||
- | alias ll='ls -lsa' | ||
. ~root/.profile_root | . ~root/.profile_root | ||
- | stty erase ^? | + | echo "BASH" |
+ | |||
+ | # Specific (add your custom entries) | ||
EOF | EOF | ||
</cli> | </cli> | ||
Line 238: | Line 244: | ||
rpm -Uhv libjpeg-9a-1.aix5.1.ppc.rpm | rpm -Uhv libjpeg-9a-1.aix5.1.ppc.rpm | ||
rpm -Uhv tightvnc-server-1.3.10-2.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 | ||
</cli> | </cli> | ||
Line 263: | Line 273: | ||
* check paging space 2GB minimum | * check paging space 2GB minimum | ||
- | * Create an mksysb script, for example | + | * Create an mksysb script, for example **mksysb.sh** and environment file **.env** |
+ | <cli> | ||
+ | # cat .env | ||
+ | </cli> | ||
<code> | <code> | ||
- | #!/bin/ksh | + | # 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" | ||
+ | </code> | ||
+ | <cli> | ||
+ | # cat mksysb.sh | ||
+ | </cli> | ||
+ | <code> | ||
+ | #!/bin/ksh93 | ||
#set -x | #set -x | ||
- | #@(#) script qui effectue un mksysb | + | ############################################# |
- | #@(#) soit en local dans /mksysb | + | #@(#) create mksysb on NIM server |
- | #@(#) soit en remote par mount NFS | + | ############################################# |
- | #@(#) sur le serveur NIM | + | # version 1.0 21-02-2019 |
- | #@(#) retention de 2 versions | + | # version 1.1 07-2023 Add timeout and check proc |
- | #@(#) ver 1.0 12-06-2006 | + | ############################################# |
+ | |||
+ | dir=`dirname $0` | ||
+ | . $dir/.env | ||
- | export LANG=C | ||
- | SN=`basename $0` | ||
- | HN=`hostname -s` | ||
- | TIME=`date` | ||
NUM=`date +%y%m%d%H%M` | NUM=`date +%y%m%d%H%M` | ||
- | LOGPATH=/var/log | ||
LOCAL_PATH=/mnt | LOCAL_PATH=/mnt | ||
- | LOGFILE=$LOGPATH/fullbackup.log | ||
VERSION_EXIST=1 | VERSION_EXIST=1 | ||
- | REMOTE_BACKUP_SERVER=nim | + | REMOTE_BACKUP_SERVER=nimprod |
- | REMOTE_PATH=/mksysb | + | REMOTE_PATH=/export/mksysb |
UMOUNT=1 | UMOUNT=1 | ||
- | VPD_USER=vpd | + | HOSTNAME=$(hostname -s | tr 'A-Z' 'a-z') |
- | MAILTO="prod" | + | PID=$$ |
- | MSG="Backup failed please check $LOGFILE" | + | TIMEOUTPROC=3600 |
- | TMP_FILE=/tmp/$$ | + | |
+ | #--------------------- | ||
+ | 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 | ||
- | echo "########################################" >> $LOGFILE | ||
- | echo `date`" : Begin of "$SN >> $LOGFILE | ||
if [ "$VERBOSE_LOGGING" = "high" ] | if [ "$VERBOSE_LOGGING" = "high" ] | ||
then | then | ||
Line 298: | Line 344: | ||
fi | fi | ||
- | case "$1" in | + | if [ "$HOSTNAME" == "${REMOTE_BACKUP_SERVER}" ] |
- | local ) | + | then |
- | MKSYSB_PATH=$REMOTE_PATH | + | MKSYSB_PATH=$REMOTE_PATH |
- | ;; | + | else |
- | remote ) | + | MKSYSB_PATH=$LOCAL_PATH |
- | MKSYSB_PATH=$LOCAL_PATH | + | mount -o vers=4,soft,intr $REMOTE_BACKUP_SERVER:$REMOTE_PATH $MKSYSB_PATH |
- | mount $REMOTE_BACKUP_SERVER:$REMOTE_PATH $MKSYSB_PATH | + | if [ $? -ne 0 ] |
- | if [ $? -ne 0 ] | + | then |
- | then | + | echo "NFS mount failed" |
- | echo "NFS mount failed" >> $LOGFILE | + | exit 1 |
- | exit 1 | + | fi |
- | fi | + | UMOUNT=0 |
- | UMOUNT=0 | + | fi |
- | ;; | + | |
- | * ) | + | |
- | echo "Usage: $0 (local | remote)" | + | |
- | exit 1 | + | |
- | esac | + | |
# Remove old mksysb | # Remove old mksysb | ||
- | NOB=`ls $MKSYSB_PATH | grep $HN | wc -l | awk '{print $1}'` | + | NOB=`ls $MKSYSB_PATH | grep $HOSTNAME | wc -l | awk '{print $1}'` |
while [[ "$NOB" -ge $VERSION_EXIST ]] | while [[ "$NOB" -ge $VERSION_EXIST ]] | ||
do | do | ||
- | FILE=`ls -rt $MKSYSB_PATH | grep $HN | head -1` | + | FILE=`ls -rt $MKSYSB_PATH | grep "${HOSTNAME}_" | head -1` |
- | if [ -f $MKSYSB_PATH/$FILE ] | + | if [ -f $MKSYSB_PATH/$FILE ] |
- | then | + | then |
- | echo "Removing mksysb $FILE" >> $LOGFILE | + | echo "Removing mksysb $FILE" |
- | rm -f $MKSYSB_PATH/$FILE | + | rm -f $MKSYSB_PATH/$FILE |
- | fi | + | fi |
- | let NOB=NOB-1 | + | let NOB=NOB-1 |
done | done | ||
# make new backup | # make new backup | ||
- | echo "Starting backup of `hostname`" >> $LOGFILE | + | echo "Starting backup of `hostname`" |
- | echo "Backup of / and exclude files from /etc/exclude.rootvg" >> $LOGFILE | + | echo "Backup of / and exclude files from /etc/exclude.rootvg" |
- | mksysb -e -i -X ${MKSYSB_PATH}/$HN.mksysb.$NUM >> $LOGFILE 2>&1 | + | /opt/freeware/bin/timeout $TIMEOUTPROC mksysb -e -i -X ${MKSYSB_PATH}/${HOSTNAME}_mksysb |
- | if [ $? -gt 0 ] | + | RC=$? |
+ | if [ $RC -gt 0 ] | ||
then | then | ||
- | echo $MSG > $TMP_FILE | + | echo $RC |
- | mailx -s "Mksysb $SN failed on AIX $HN " $MAILTO < $TMP_FILE | + | mailx -s "Mksysb $SN failed on AIX $HOSTNAME " $destination < $logname |
fi | fi | ||
- | chown $VPD_USER ${MKSYSB_PATH}/$HN.mksysb.* | + | echo "Mksysb size in GB" |
- | echo "Mksysb size in GB" >> $LOGFILE 2>&1 | + | du -sg ${MKSYSB_PATH}/${HOSTNAME}_mksysb |
- | du -sg ${MKSYSB_PATH}/$HN.mksysb.$NUM >> $LOGFILE 2>&1 | + | |
if [ $UMOUNT -eq 0 ] | if [ $UMOUNT -eq 0 ] | ||
then | then | ||
- | umount $MKSYSB_PATH | + | umount $MKSYSB_PATH |
fi | fi | ||
- | echo `date`" : End of "$SN >> $LOGFILE | + | echo `date`" : End of "$SN |
- | exit 0 | + | } |
+ | |||
+ | ###################### | ||
+ | main () | ||
+ | { | ||
+ | echo "########################################" | ||
+ | echo `date`" : Begin of "$SN | ||
+ | |||
+ | check_running | ||
+ | create_mksysb | ||
+ | } | ||
+ | main > $logname 2>&1 | ||
</code> | </code> | ||