[node.js篇],定时备份数据库,防止数据丢失

110 阅读1分钟

所需模块

# 定时任务
npm i node-schedule
# 备份数据库
npm i mysqldump

示例

const fs = require("fs");
const mysqldump = require("mysqldump");
const schedule = require("node-schedule");
const { mysql } = require("./constants");

const FILEURL = "./database";

// 每天凌晨自动备份
schedule.scheduleJob("0 0 0 * * *", function () {
  console.log("数据库备份成功");
  // 备份的路径
  let date = new Date();
  // 用当前时间作为备份文件名称
  let year = date.getFullYear();
  let month = date.getMonth() + 1;
  let day = date.getDate();
  let name = `${year}-${month}-${day}`;

  const SQLFILE = `${FILEURL}/${name}.sql`;
  // 始备份
  mysqldump({
    connection: mysql,
    dumpToFile: SQLFILE,
  });

  // 删除多余备份,只保留最近的6次
  databaseList = fs.readdirSync("./database");
  for (let item of databaseList.slice(0, -6)) {
    fs.unlinkSync(`./database/${item}`);
  }
});