Step 1 : Create a copy of original folder and name it as smtp_corp_backup on production server.
Step 2 : Create shell script (/var/www/html/diffscript/getCorpRelayDiff.sh) on jenkins server to get output of diff command from production server. Set Executable permission to script.
#!/usr/bin/sh #set -x; # Remote server details REMOTEFOLDER=/opt/smtp_corp/ remote_user="*****" remote_host="*****" # Local folder LOCALFOLDER=/opt/smtp_corp_backup/ EXCLUDEFILE=/opt/smtp_corp/.diffignore # Use diff to find differences diff_output=$(ssh ${remote_user}@${remote_host} diff --exclude-from=$EXCLUDEFILE -rqb $REMOTEFOLDER $LOCALFOLDER) # Check the output of diff if [ -z "$diff_output" ]; then echo "No differences found." else echo "Differences found. Here is the diff output:" echo "$diff_output" fi
Step 3 : Add below code in Jenkins Execute Shell
echo "INSIDE==========EXECUTE SHELL BLOCK================" diffout=$(/var/www/html/diffscript/getCorpRelayDiff.sh) echo "======>"$diffout"<======" if [ "$diffout" = "No differences found." ]; then echo "No Diff found" rsync -avp --exclude-from='.releaseignore' --no-perms --omit-dir-times * *****@******:/opt/smtp_corp/ /var/www/html/diffscript/sendSlackMessage.sh 'success' 'Build done for CORPRELAY' 'Jenkins' rsync -avp --exclude-from='.releaseignore' --no-perms --omit-dir-times * ******@*******:/opt/smtp_corp_backup/ else echo "Build failed due to differecne found...!" /var/www/html/diffscript/sendSlackMessage.sh 'failed' 'Build failed due to diff found for CORPRELAY' 'Jenkins' exit 1 fi