所需模块
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}`)
}
})