linux java mysql 备份 runtime_Linux下mysql定时备份脚本以及java实现

sh脚本介绍

#!/bin/bash

#######################################################

# crontab 定时备份#######################################################

backup_dir="/mysql_data_backup"

mkdir -p $BCK_DIRcd $BCK_DIR

touch mysql_back.sh

chmod +x mysql_back.sh

db_name="root"

db_user="root"

db_password="root"

date=`date +%Y%m%d_%H%M%S`

#压缩

mysqldump -u$db_user -p$db_password $db_name | gzip > $backup_dir/$date.sql.gz

#不压缩

mysqldump -u$db_user -p$db_password $db_name > $backup_dir/$date.sql

#删除1天前的数据

#-type f 表示查找普通类型的文件,f表示普通文件。

#-mtime +5 按照文件的更改时间来查找文件,+5表示文件更改时间距现在5天以前;

#如果是 -mmin +5 表示文件更改时间距现在5分钟以前。#-exec rm {} \;

#表示执行一段shell命令,exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号。

find $backup_dir -name "*.sql" -type f -mtime +1 -exec rm {} \;

#命令调用sh脚本,每天下午2点47分#47 14 * * *

/mysql_data_backup/backup.sh

脚本例子

backup_dir="/mysql_dbbackup/"

db_name="root"

db_user="root"

db_password="root"

date=`date +%Y%m%d_%H%M%S`

cd $backup_dir

mysqldump -u$db_user -p$db_password $db_name | gzip > $date.sql.gz

find $backup_dir -name "*.sql.gz" -type f -mtime +3 -exec rm {} \;

java代码实现

BaseListener监听器

public class BaseListener implements ServletContextListener{

@Override

public void contextInitialized(ServletContextEvent servletContextEvent) {

Properties props=System.getProperties();

String osName = props.getProperty("os.name");

if(osName.toUpperCase().contains("LINUX")){

System.out.println("Linux服务器---->启动mysql定时备份功能...");

String dbname="educationapp";

String dbuser="root";

String dbpassword="jiaowei!@#";

String backupdir="";

backupdir="/mysql_dbbackup/";

try {

DbBackUpUtils.mysqlBackUp(dbname,dbuser,dbpassword,backupdir);

} catch (IOException e) {

e.printStackTrace();

}

Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 3);//控制小时 calendar.set(Calendar.MINUTE, 0);//控制分钟 calendar.set(Calendar.SECOND, 0);//控制秒

Date time = calendar.getTime();

Timer t=new Timer(true);

t.schedule(new TimerTask() {

@Override

public void run() {

try {

Runtime runtime = Runtime.getRuntime();

runtime.exec("/mysql_dbbackup/mysql_back.sh");

} catch (IOException e) {

e.printStackTrace();

}

}

}, time,24*60*60*1000); } }

@Override

public void contextDestroyed(ServletContextEvent servletContextEvent) { }}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值