Here’s the MKSYSB backup script that:
- Creates the MKSYSB backup
- Copies it to the NIM server
- Sends an email on success or failure
- Full Script with Email Notification
#!/bin/ksh
# Variables
DATE=$(date +%Y%m%d_%H%M)
HOSTNAME=$(hostname)
MKSYSB_FILE="/backup/mksysb_${HOSTNAME}_${DATE}.mksysb"
NIM_SERVER="master" # Your NIM server hostname or IP
NIM_BACKUP_DIR="/export/mksysb_backups"
REMOTE_USER="nimadmin" # Remote server user name
EMAIL_TO="admin@example.com" # Change to your email address
EMAIL_FROM="noreply@example.com"
SUBJECT_SUCCESS="MKSYSB Backup Completed Successful on ${HOSTNAME}"
SUBJECT_FAIL="MKSYSB Backup FAILED on ${HOSTNAME}"
# Function to send email
send_email() {
local subject=$1
local message=$2
(
echo "From: $EMAIL_FROM"
echo "To: $EMAIL_TO"
echo "Subject: $subject"
echo ""
echo "$message"
) | /usr/sbin/sendmail -t
}
# Start backup
echo "Starting MKSYSB backup at $(date)..."
/usr/bin/mksysb -i -X "$MKSYSB_FILE"
if [ $? -ne 0 ]; then
send_email "$SUBJECT_FAIL" "MKSYSB backup failed on ${HOSTNAME} at $(date)."
echo "MKSYSB backup failed!"
exit 1
fi
echo "MKSYSB backup created: $MKSYSB_FILE"
# Copy to NIM server
echo "Copying MKSYSB backup to NIM server $NIM_SERVER..."
scp "$MKSYSB_FILE" "${REMOTE_USER}@${NIM_SERVER}:${NIM_BACKUP_DIR}/"
if [ $? -ne 0 ]; then
send_email "$SUBJECT_FAIL" "Failed to copy MKSYSB backup to NIM server (${NIM_SERVER}) from ${HOSTNAME} at $(date)."
echo "Failed to copy MKSYSB to NIM server!"
exit 2
fi
# Cleanup local backups, keep last 5
echo "Cleaning up old local backups..."
ls -1tr /backup/mksysb_${HOSTNAME}_*.mksysb | head -n -5 | xargs -r rm --
# Send success email
send_email "$SUBJECT_SUCCESS" "MKSYSB backup completed and copied to NIM server successfully on ${HOSTNAME} at $(date)."
echo "Backup process completed successfully."
exit 0
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Scheduling
Add to cron to automate:
0 2 * * * /path/to/mksysb_backup.sh >> /var/log/mksysb_backup.log 2>&1
At 2:00 AM every day, run /path/to/mksysb_backup.sh and append output and errors to /var/log/mksysb_backup.log.
No comments:
Post a Comment