shell脚本备份数据库

简介:
    刚写了个shell脚本,用于每天凌晨2点30分备份项目中的一个库。现做个简单记录,以备查用,也和广大51cto午饭们分享。
1.先确定软件包和crond服务运行情况:
   查看是否安装vixie-crom-4.1-44.EL4软件包
#rpm -qa |grep vixie-cron 
vixie-crom-4.1-44.EL4
  
   查看crond服务的运行状态
#service crond status 
crond (pid 3065) is running...
 
2.编写脚本:
#!/bin/sh    
USER="root"  #DB用户名 
PASSWORD="pwd"  #DB密码 
DATABASE="test"     #DB数据库名 
WEBMASTER= yangfei_luck@163.com     #错误发送邮箱 
BACKUP_DIR="/export/home/wwwroot/webapps/testScripting/Data_backup"  #备份文件存放目录 
LOGFILE="/export/home/wwwroot/webapps/testScripting/Data_backup/data_backup.log"     #备份日志文件 
DATE=`date +%Y%m%d-%H%M`     #当前年月日时分 
DUMPFILE=$DATE.sql     #当前年月日时分作备份文件名 
ARCHIVE=$DATE.sql.tgz     #压缩包名 
OPTIONS="-u$USER -p$PASSWORD --opt --extended-insert=false --triggers --routines --hex-blob $DATABASE"     #备份操作 

#判断备份目录是否存在,如果不存在则创建一个 
if [ ! -d $BACKUP_DIR ] ; 
then 
mkdir -p "$BACKUP_DIR" 
fi 

echo ----------------------------------------- >> $LOGFILE 
echo BACKUP DATE: `date +%Y-%m-%d-%H:%M:%S` >> $LOGFILE 
echo Backup Process    Begin >> $LOGFILE 

#更换目录 
cd $BACKUP_DIR 

#执行备份操作 
mysqldump $OPTIONS > $DUMPFILE 

#判断备份是否成功 
if [[ $? == 0 ]]; then 

#创建备份文件压缩包 
tar czvf $ARCHIVE $DUMPFILE >> $LOGFILE 2>&1 
echo [$ARCHIVE] Backup Successful! >> $LOGFILE 

#删除原备份文件,只留压缩包 
rm -f $DUMPFILE 

#备份失败,发送错误消息到邮箱(需要mailutils或者类似终端下发送邮件工具的支持) 
else 
echo “Database Backup Fail!” >> $LOGFILE 

#mail -s “Database:$DATABASE Daily Backup Fail” $WEBMASTER 
fi 
echo Backup Process    End >> $LOGFILE 
echo “Backup Process Done” 
echo ----------------------------------------- >> $LOGFILE
 
3.配置定时器:
  crontab中每一行代表一个任务,格式如下:
minute    hour    day    month    dayofweek    command


     本文转自NightWolves 51CTO博客,原文链接: http://blog.51cto.com/yangfei520/463035 ,如需转载请自行联系原作者




相关文章
|
25天前
|
弹性计算 Shell Perl
ecs服务器shell常用脚本练习(二)
【4月更文挑战第1天】shell代码训练(二)
106 1
|
27天前
|
Java Shell
SpringBoot启动脚本Shell
SpringBoot启动脚本Shell
17 0
|
5天前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
31 3
|
2天前
|
监控 Shell 应用服务中间件
第十二章 Shell脚本编写及常见面试题(二)
第十二章 Shell脚本编写及常见面试题(二)
|
2天前
|
监控 关系型数据库 Shell
第十二章 Shell脚本编写及常见面试题(一)
第十二章 Shell脚本编写及常见面试题(一)
|
2天前
|
监控 Shell
生产环境Shell脚本Ping监控主机是否存活(多种方法)
生产环境Shell脚本Ping监控主机是否存活(多种方法)
|
2天前
|
运维 Shell
Shell脚本判断IP是否合法性(多种方法)
Shell脚本判断IP是否合法性(多种方法)
|
8天前
|
运维 监控 Shell
利用Shell脚本编写局域网监控软件:实时监测主机连接情况
本文介绍了如何使用Shell脚本创建一个局域网监控工具,以实时检查主机连接状态。脚本包括扫描IP地址范围检测主机可达性及使用`netstat`监控ESTABLISHED连接。此外,还展示了如何每60秒将连接数数据自动提交到指定网站API,以便实时跟踪网络活动。这个自动化监控系统有助于提升网络安全性和故障排查效率。
32 0
|
9天前
|
Shell
Shell脚本之流程控制语句
Shell脚本之流程控制语句
|
10天前
|
JSON 运维 监控
训练shell常用脚本练习(三)
【4月更文挑战第14天】shell代码训练(三)
32 1