linux下面自动打包备份并且删除7 天前的mysql备份文件

直接上干货

新建sh文件

#!/bin/bash 
# Shell script to backup MySql database  
# To backup Nysql databases file to /backup dir and later pick up by your  
# script. You can skip few databases from backup too. 
# For more info please see (Installation info): 
# http://www.cyberciti.biz/nixcraft/vivek/blogger/2005/01/mysql-backup-script.html  
# Last updated: Aug - 2005 
# -------------------------------------------------------------------- 
# This is a free shell script under GNU GPL version 2.0 or above 
# Copyright (C) 2004, 2005 nixCraft project 
# Feedback/comment/suggestions : http://cyberciti.biz/fb/ 
# ------------------------------------------------------------------------- 
# This script is part of nixCraft shell script collection (NSSC) 
# Visit http://bash.cyberciti.biz/ for more information. 
# ------------------------------------------------------------------------- 
MyUSER="root"   # USERNAME 
MyPASS="5601564aaa..."    # PASSWORD  
MyHOST="127.0.0.1"     # Hostname 
# Linux bin paths, change this if it can not be autodetected via which command 
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
CHOWN="$(which chown)"
CHMOD="$(which chmod)"
GZIP="$(which gzip)"
# Backup Dest directory, change this if you have someother location 
DEST="/dtd/backup"
# Main directory where backup will be stored 
MBD="$DEST/mysql"
# Get hostname 
#HOST="$(hostname)"
# Get data in dd-mm-yyyy format 
NOW="$(date +"%Y-%m-%d")"
# File to store current backup file 
FILE=""
# Store list of databases  
DBS=""
# DO NOT BACKUP these databases 
IGGY="test"
[ ! -d $MBD ] && mkdir -p $MBD || : 
# Only root can access it! 
$CHOWN 0.0 -R $DEST 
$CHMOD 0600 $DEST 
# Get all database list first 
DBS="$($MYSQL -u $MyUSER -h $MyHOST -p$MyPASS -Bse 'show databases')"
for db in $DBS 
do
  skipdb=-1 
  if [ "$IGGY" != "" ]; 
  then
  for i in $IGGY 
  do
    [ "$db" == "$i" ] && skipdb=1 || : 
  done
  fi
  if [ "$skipdb" == "-1" ] ; then
  FILE="$MBD/$db.$NOW.gz"
	echo $FILE;
  day_ago=`date -d '-7 days' +%Y-%m-%d`
  gabbish_file="$MBD/$db.$day_ago.gz"
	if [ ! -f "$gabbish_file" ]; then  
       echo $gabbish_file  not exist ;
	else
	rm -rf $gabbish_file
	 echo delete  $gabbish_file is ok ;
	fi  
  
 # do all inone job in pipe, 
  # connect to mysql using mysqldump for select mysql database 
  # and pipe it out to gz file in backup dir :)
  iCommand=" $MYSQLDUMP -u $MyUSER -h $MyHOST -p$MyPASS $db -f| $GZIP -9 > $FILE" 
	echo $iCommand    
#$MYSQLDUMP -u $MyUSER -h $MyHOST -p$MyPASS $db -f| $GZIP -9 > $FILE 
eval  $iCommand;	
  fi
done



打开日志备份计划:自动备份

 crontab -e

02 4 * * * /dtd/backup/shell_backup.sh


每天 4点02分,开始备份




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值