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) { }}
總結
以上是生活随笔為你收集整理的linux java mysql 备份 runtime_Linux下mysql定时备份脚本以及java实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jetty java 实例_Maven+
- 下一篇: mysql 安全扫描_MySQL 安全和