#!/bin/bash 
#Shell Command For Backup MySQL Database Everyday Automatically By Crontab 
  
USER=root 
PASSWORD="admin" 
DATABASE="nansha_car_manager" 
HOSTNAME="localhost" 
  
 
BACKUP_DIR=/home/mysql_back/ #备份文件存储路径 
LOGFILE=/home/mysql_back/data_backup.log #日记文件路径 
DATE=`date '+%Y%m%d-%H%M'` #日期格式(作为文件名) 
DUMPFILE=$DATE.sql #备份文件名 
ARCHIVE=$DATE.sql.tgz #压缩文件名 
OPTIONS="-h$HOSTNAME -u$USER -p$PASSWORD $DATABASE" 
#mysqldump -help 
  
#判断备份文件存储目录是否存在,否则创建该目录 
if [ ! -d $BACKUP_DIR ] ; 
then 
        mkdir -p "$BACKUP_DIR" 
fi 
  
#开始备份之前,将备份信息头写入日记文件 
echo " " >> $LOGFILE 
echo " " >> $LOGFILE 
echo "———————————————–" >> $LOGFILE 
echo "BACKUP DATE:" $(date +"%y-%m-%d %H:%M:%S") >> $LOGFILE 
echo "———————————————– " >> $LOGFILE 
  
#切换至备份目录 
cd $BACKUP_DIR 
#使用mysqldump 命令备份制定数据库,并以格式化的时间戳命名备份文件 
mysqldump $OPTIONS > $DUMPFILE 
#判断数据库备份是否成功 
if [[ $? == 0 ]]; then 
    #创建备份文件的压缩包 
    tar czvf $ARCHIVE $DUMPFILE >> $LOGFILE 2>&1 
    #输入备份成功的消息到日记文件 
    echo “[$ARCHIVE] Backup Successful!” >> $LOGFILE 
    #删除原始备份文件,只需保 留数据库备份文件的压缩包即可 
    rm -f $DUMPFILE 
 #-ctime表示创建时间,这里表示删除创建时间为多少天之前的文件,也就是结果只保留多少天的数据
 find $BACKUP_DIR -ctime +7 -type f -name "*.tgz" -print > deleted.txt
 echo -e "delete files:\n" >> $LogFile
 #循环删除匹配到的文件
 cat deleted.txt | while read LINE
 do
  rm -rf $LINE
  echo $LINE>> $LogFile
 done
else 
    echo “Database Backup Fail!” >> $LOGFILE 
fi 
#输出备份过程结束的提醒消息 
echo “Backup Process Done”

# 写日到cron job
# crontab -e 
# */1 * * * * /home/auto_log.sh >/dev/null  2>&   #shell脚本目录

最新文章

  1. linux下关掉teamviewer服务
  2. try--catch--finally中return返回值执行的顺序(区别)
  3. Apache虚拟主机(三)
  4. [物理学与PDEs]第4章习题参考解答
  5. 无状态服务(stateless service)
  6. linux内核神级list
  7. windows分屏
  8. SquashFs工具制作
  9. iOS 数据模型 的 一般设计
  10. android.support.v7.app.AppCompatActivity
  11. CSS——inline-block属性
  12. Maven项目下update maven后Eclipse报错:java.lang.ClassNotFoundException: ContextLoaderL
  13. release环境下,当前不会命中断点,还没有为该文档加载任何符号
  14. Android BroadcastReceiver解析
  15. BZOJ2423 HAOI2010最长公共子序列(动态规划)
  16. Algorithm - 贪心算法使用场景 ( LEETCODE —— Best Time to Buy and Sell Stock II)
  17. java String详解
  18. Java基础知识陷阱(二)
  19. 【BIEE】服务启动失败,查看错误日志
  20. 剑指offer 面试10题

热门文章

  1. Linux中的系统默认日志
  2. unknown encoder libvpx
  3. 【AWS】订阅AWS论坛的RSS消息获取最新公告
  4. linux各个文件夹作用
  5. LeetCode:对角线遍历【498】
  6. python 课堂笔记-for语句
  7. 【Tech】CAS RESTful API使用笔记
  8. SpringBoot Mybatis keyProperty和useGeneratedKeys的作用
  9. Struts2的<s:date>标签使用详解[转]
  10. 未能将网站配置为使用ASP.NET4.X 解决方法