Rsync Automatic Backup Script - Rhel5

  • Uploaded by: Piyush Sachan
  • 0
  • 0
  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Rsync Automatic Backup Script - Rhel5 as PDF for free.

More details

  • Words: 522
  • Pages: 3
#!/bin/bash # Date : 19th Septempber 2009 # Purpose : To automate incremental backup in a machine # Contact : For any comments and suggestions email me at [email protected] # color_ok="\\033[1;32m" color_error="\\033[1;38m" color_normal="\\033[0;39m" color_input="\\033[1;34m" color_output="\\033[1;20m" BOOL=false iscase() { read CHOICE case $CHOICE in 1) BOOL=true CRONS=hourly echo -e "making crontab entry in /etc/cron.hourly/rsync_scripts" echo -e " generating logfile in /root/rsync.logwatch$SERVIP/$SERVIP.rsync.log" mkdir /root/rsync.logwatch$SERVIP # #saving a new entry in crontab hourly # grep "/root/scripts/rsync_local_$SERVIP.$CRONS.sh >> /root/rsync.logwatch$SERVIP/$SERVIP.rsync.log" /etc/cron.hourly/rsync_scripts > /dev/null STATUS=$? if [ "$STATUS" -ne 0 ]; then echo -e "/root/scripts/rsync_local_$SERVIP.$CRONS.sh >> /root/rsync.logwatch$SERVIP/$SERVIP.rsync.log" >> /etc/cron.hourly/rsync_scripts chmod 755 /etc/cron.hourly/rsync_scripts echo -e "$color_ok Done....$color_normal" fi;; 2) BOOL=true CRONS=daily echo -e "$color_error making crontab entry in /etc/cron.daily/rsync_scripts" echo -e " generating logfile in /root/rsync.logwatch$SERVIP/$SERVIP.rsync.log" mkdir /root/rsync.logwatch$SERVIP # #saving a new entry in crontab hourly # grep "/root/scripts/rsync_local_$SERVIP.$CRONS.sh >> /root/rsync.logwatch$SERVIP/$SERVIP.rsync.log" /etc/cron.daily/rsync_scripts > /dev/null STATUS=$? if [ "$STATUS" -ne 0 ]; then echo -e "/root/scripts/rsync_local_$SERVIP.$CRONS.sh >> /root/rsync.logwatch$SERVIP/$SERVIP.rsync.log" >> /etc/cron.daily/rsync_scripts chmod 755 /etc/cron.daily/rsync_scripts echo -e "$color_ok Done....$color_normal" fi;; 3) BOOL=true CRONS=weekly

echo -e "$color_error making crontab entry in /etc/cron.weekly/rsync_scripts" echo -e " generating logfile in /root/rsync.logwatch$SERVIP/$SERVIP.rsync.log" mkdir /root/rsync.logwatch$SERVIP # #saving a new entry in crontab hourly # grep "/root/scripts/rsync_local_$SERVIP.$CRONS.sh >> /root/rsync.logwatch$SERVIP/$SERVIP.rsync.log" /etc/cron.weekly/rsync_scripts > /dev/null STATUS=$? if [ "$STATUS" -ne 0 ]; then echo -e "/root/scripts/rsync_local_$SERVIP.$CRONS.sh >> /root/rsync.logwatch$SERVIP/$SERVIP.rsync.log" >> /etc/cron.weekly/rsync_scripts chmod 755 /etc/cron.weekly/rsync_scripts echo -e "$color_ok Done....$color_normal" fi ;; 4) BOOL=true CRONS=monthly echo -e "$color_error making crontab entry in /etc/cron.monthly/rsync_scripts" echo -e " generating logfile in /root/rsync.logwatch$SERVIP/$SERVIP.rsync.log" mkdir /root/rsync.logwatch$SERVIP # #saving a new entry in crontab hourly # grep "/root/scripts/rsync_local_$SERVIP.$CRONS.sh >> /root/rsync.logwatch$SERVIP/$SERVIP.rsync.log" /etc/cron.monthly/rsync_scripts > /dev/null STATUS=$? if [ "$STATUS" -ne 0 ]; then echo -e "/root/scripts/rsync_local_$SERVIP.$CRONS.sh >> /root/rsync.logwatch$SERVIP/$SERVIP.rsync.log" >> /etc/cron.monthly/rsync_scripts chmod 755 /etc/cron.monthly/rsync_scripts echo -e "$color_ok Done....$color_normal" fi;; esac } echo -e "$color_normal Enter the ip/name of server machine : $color_input\c" read SERVIP ls /root/.ssh/server.key.$SERVIP /root/.ssh/server.key.$SERVIP.pub > /dev/null STATUS=$? if [ "$STATUS" -ne 0 ]; then echo -e "$color_error No previous key found for this ip, Creating one...\n Note: Do not use passphrase when asked just press enter ..!" echo -e "$color_normal Enter the key file name to be saved as /root/.ssh/server.key.ip $color_output" ssh-keygen -t rsa -C $SERVIP echo -e "$color_normal Enter the path of key file name you just created : $color_input\c" read KEY echo -e "$color_normal " ssh-copy-id -i "$KEY.pub" $SERVIP else KEY=`echo "/root/.ssh/server.key.$SERVIP"`

fi echo -e "$color_normal Enter path of server directory to be backuped : $color_input\c" read SERVBACKFOLD echo -e "$color_normal Enter local path where to be save your backup : $color_input\c" read LOCALBACKFOLD mkdir -p $LOCALBACKFOLD echo -e " Enter your choice for crontab scheduling \n 1. Hourly\n 2. Daily\n 3. Weekly\n 4. Monthy\n" until $BOOL = 'false' do echo -e "Enter correct choice : \c" iscase done echo -e "$color_error Creating and saving rsync_local_$SERVIP.$CRONS.sh under /root/scripts/" mkdir -p /root/scripts # #generating script to save on file # echo "#!/bin/bash echo -e \"-------------------------------------------------------------------------------------------\\n\" echo -e \"Starting backup on \`date +%d\` \`date +%B\` \`date +%Y\` at \`date +%r\`\" echo -e \"-------------------------------------------------------------------------------------------\\n\" rsync -avz --progress --numeric-ids --rsh=ssh --delete $SERVIP:$SERVBACKFOLD $LOCALBACKFOLD -e \"ssh -i $KEY\"" >> /root/scripts/rsync_local_$SERVIP.$CRONS.sh chmod 755 /root/scripts/rsync_local_$SERVIP.$CRONS.sh echo -e "$color_ok Done....$color_error" # #end of script # echo -e "$color_normal " chkconfig crond on service crond restart

Related Documents

Rsync Howto
October 2019 1
Man Rsync
December 2019 2
Backup
April 2020 27
Backup
October 2019 36

More Documents from ""