Linux shell script for database backup

后端 未结 10 1721
忘了有多久
忘了有多久 2020-12-02 04:59

I tried many scripts for database backup but I couldn\'t make it. I want to backup my database every hour.
I added files to \"/etc/cron.hourly/\" folder, changed its chm

10条回答
  •  情深已故
    2020-12-02 05:44

    Here is my mysql backup script for ubuntu in case it helps someone.

    #Mysql back up script
    
    start_time="$(date -u +%s)"
    
    now(){
    date +%d-%B-%Y_%H-%M-%S
    }
    
    ip(){
    /sbin/ifconfig eth0 2>/dev/null|awk '/inet addr:/ {print $2}'|sed 's/addr://'
    }
    
    filename="`now`".zip
    backupfolder=/path/to/any/folder
    fullpathbackupfile=$backupfolder/$filename
    db_user=xxx
    db_password=xxx
    db_name=xxx
    
    printf "\n\n"
    printf "******************************\n"
    printf "Started Automatic Mysql Backup\n"
    printf "******************************\n"
    printf "TIME: `now`\n"
    printf "IP_ADDRESS: `ip` \n"
    printf "DB_SERVER_NAME: DB-SERVER-1\n"
    
    printf "%sBACKUP_FILE_PATH $fullpathbackupfile\n"
    
    printf "Starting Mysql Dump \n"
    
    mysqldump -u $db_user -p$db_password $db_name| pv | zip > $fullpathbackupfile
    
    end_time="$(date -u +%s)"
    
    elapsed=$(($end_time-$start_time))
    
    printf "%sMysql Dump Completed In $elapsed seconds\n"
    
    printf "******************************\n"
    

    PS: Rememember to install pv and zip in your ubuntu

    sudo apt install pv
    sudo apt install zip
    

    Here is how I set crontab by using crontab -e in ubuntu to run every 6 hours

    0 */6 * * * sh /path/to/shfile/backup-mysql.sh >> /path/to/logs/backup-mysql.log 2>&1
    

    Cool thing is it will create a zip file which is easier to unzip from anywhere

提交回复
热议问题